Bird
Raised Fist0
Bash Scriptingscripting~20 mins

Creating a script file (.sh) in Bash Scripting - Practice Exercises

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
Shell Script Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
💻 Command Output
intermediate
1:00remaining
What is the output of this script?
Consider this bash script saved as hello.sh and executed with bash hello.sh:
#!/bin/bash
echo "Hello, World!"
What will be printed on the terminal?
Bash Scripting
#!/bin/bash
echo "Hello, World!"
AError: command not found
Bhello world
CHello, World!
DNo output
Attempts:
2 left
💡 Hint
Look at the echo command and what it prints exactly.
📝 Syntax
intermediate
1:30remaining
Which script has a syntax error?
Identify which of these bash scripts will cause a syntax error when run.
A
#!/bin/bash
while true; do echo "Loop"; break; done
B
#!/bin/bash
echo "Start"
if [ $1 -eq 1 ]; then echo "One" fi
C
#!/bin/bash
for i in 1 2 3; do echo $i; done
D
#!/bin/bash
echo "Done"
Attempts:
2 left
💡 Hint
Check if all if statements have proper closing keywords.
🚀 Application
advanced
2:00remaining
What does this script do?
Analyze this bash script and choose the correct description of its behavior:
#!/bin/bash
count=0
while [ $count -lt 3 ]; do
  echo "Count is $count"
  ((count++))
done
echo "Finished counting"
Bash Scripting
#!/bin/bash
count=0
while [ $count -lt 3 ]; do
  echo "Count is $count"
  ((count++))
done
echo "Finished counting"
APrints 'Count is 0' three times then 'Finished counting'
BInfinite loop printing 'Count is 0'
CPrints 'Finished counting' only
DPrints 'Count is 0', 'Count is 1', 'Count is 2' then 'Finished counting'
Attempts:
2 left
💡 Hint
Look at the loop condition and how count changes.
🔧 Debug
advanced
1:30remaining
Why does this script fail to run?
This script is saved as myscript.sh and run with ./myscript.sh. It shows Permission denied. Why?
#!/bin/bash
echo "Running script"
AThe script file does not have execute permission.
BThe shebang line is incorrect.
CThe echo command is misspelled.
DThe script is missing a closing quote.
Attempts:
2 left
💡 Hint
Check file permissions with ls -l.
🧠 Conceptual
expert
2:30remaining
What is the correct way to create a script file that runs on any bash shell?
You want to create a script file named runme.sh that works on any system with bash installed. Which option correctly creates and prepares this script?
ACreate file with content starting with '#!/bin/bash', save it, then run 'chmod +x runme.sh' before executing.
BCreate file with content starting with '#!/bin/sh', save it, then run 'chmod 644 runme.sh' before executing.
CCreate file with content starting with '#!/bin/bash', save it, then run 'chmod 777 runme.sh' before executing.
DCreate file with content starting with '#!/bin/bash', save it, then run 'chmod 600 runme.sh' before executing.
Attempts:
2 left
💡 Hint
The script needs execute permission and the correct shebang for bash.

Practice

(1/5)
1. What is the main purpose of creating a .sh script file in bash?
easy
A. To compile programs
B. To store text documents
C. To save a list of commands to run them later easily
D. To create image files

Solution

  1. Step 1: Understand what a script file is

    A .sh file contains bash commands saved to run multiple times without typing again.
  2. Step 2: Identify the purpose of saving commands

    Saving commands helps automate tasks and avoid retyping, which matches To save a list of commands to run them later easily.
  3. Final Answer:

    To save a list of commands to run them later easily -> Option C
  4. Quick Check:

    Script file purpose = save commands [OK]
Hint: Scripts save commands to run anytime without retyping [OK]
Common Mistakes:
  • Thinking .sh files are for text or images
  • Confusing scripts with compiled programs
  • Not knowing scripts automate commands
2. Which line should you add at the very top of a bash script file to specify the interpreter?
easy
A. #!/bin/python
B. #!/bin/bash
C. #!/usr/bin/node
D. #!/bin/shutdown

Solution

  1. Step 1: Identify the correct shebang for bash scripts

    The shebang line tells the system which program runs the script. For bash, it is #!/bin/bash.
  2. Step 2: Eliminate incorrect interpreters

    Options A, C, and D point to other interpreters or invalid commands.
  3. Final Answer:

    #!/bin/bash -> Option B
  4. Quick Check:

    Shebang for bash = #!/bin/bash [OK]
Hint: Use #!/bin/bash as first line to run bash scripts [OK]
Common Mistakes:
  • Using wrong interpreter path
  • Forgetting the #! at the start
  • Confusing bash with other languages
3. What will be the output when you run this script named greet.sh?
#!/bin/bash
echo "Hello, $USER!"
medium
A. Syntax error
B. Hello, root!
C. Hello, $USER!
D. Hello, your-username!

Solution

  1. Step 1: Understand the variable $USER in bash

    $USER is an environment variable that holds the current user's username.
  2. Step 2: Predict the echo output

    The echo command prints "Hello, " followed by the username, so it outputs "Hello, your-username!" where your-username is the actual user.
  3. Final Answer:

    Hello, your-username! -> Option D
  4. Quick Check:

    $USER expands to username = Hello, your-username! [OK]
Hint: Variables like $USER show your username in scripts [OK]
Common Mistakes:
  • Thinking $USER prints literally
  • Expecting 'root' always
  • Confusing syntax causing errors
4. You wrote a script myscript.sh but when you run ./myscript.sh, it says Permission denied. What is the likely fix?
medium
A. Run chmod +x myscript.sh to make it executable
B. Add #!/bin/bash at the top
C. Rename the file to myscript.txt
D. Run the script with bash myscript.sh only

Solution

  1. Step 1: Understand the cause of 'Permission denied'

    This error usually means the file is not executable by the user.
  2. Step 2: Make the script executable

    Using chmod +x myscript.sh adds execute permission, allowing ./myscript.sh to run.
  3. Final Answer:

    Run chmod +x myscript.sh to make it executable -> Option A
  4. Quick Check:

    Permission denied fix = chmod +x [OK]
Hint: Use chmod +x to allow script execution [OK]
Common Mistakes:
  • Forgetting to make script executable
  • Only adding shebang without permissions
  • Renaming file instead of fixing permissions
5. You want to create a script backup.sh that prints "Backup started" and then lists files in the current directory. Which script content is correct?
hard
A. #!/bin/bash echo "Backup started" ls
B. echo "Backup started" ls #!/bin/bash
C. #!/bin/bash echo Backup started ls-l
D. #!/bin/sh echo "Backup started" list

Solution

  1. Step 1: Check the shebang and commands order

    The script must start with #!/bin/bash to run in bash, then commands follow in order.
  2. Step 2: Verify commands and syntax

    #!/bin/bash echo "Backup started" ls has correct shebang, echo with quotes, and ls command to list files. Others have wrong order, missing quotes, or invalid commands.
  3. Final Answer:

    #!/bin/bash echo "Backup started" ls -> Option A
  4. Quick Check:

    Correct script structure = #!/bin/bash echo "Backup started" ls [OK]
Hint: Start script with #!/bin/bash then commands line by line [OK]
Common Mistakes:
  • Placing shebang after commands
  • Using wrong commands like 'list'
  • Missing quotes around strings
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard