Bird
Raised Fist0
Bash Scriptingscripting~20 mins

First Bash script in Bash Scripting - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
Bash Script Mastery
Get all challenges correct to earn this badge!
Test your skills under time pressure!
💻 Command Output
intermediate
2:00remaining
What is the output of this Bash script?
Consider this simple Bash script that prints a greeting message. What will it output when run?
Bash Scripting
#!/bin/bash
name="Alice"
echo "Hello, $name!"
AHello, Alice!
BHello, $name!
Cname
DHello, !
Attempts:
2 left
💡 Hint
Look at how variables are used with the $ sign inside double quotes.
💻 Command Output
intermediate
2:00remaining
What does this Bash script print?
This script uses a loop to print numbers. What is the output?
Bash Scripting
#!/bin/bash
for i in {1..3}; do
echo $i
done
A
0
1
2
3
B1 2 3
CError: invalid syntax
D
1
2
3
Attempts:
2 left
💡 Hint
The loop runs from 1 to 3 inclusive, printing each number on its own line.
📝 Syntax
advanced
2:00remaining
Which option contains a syntax error in this Bash script?
Identify the option that will cause a syntax error when running the script.
Bash Scripting
#!/bin/bash
count=5
if [ $count -gt 3 ]; then
echo "Count is greater than 3"
fi
A
#!/bin/bash
count=5
if [ $count -gt 3 ]; then
echo "Count is greater than 3"
fi
B
#!/bin/bash
count=5
if [ $count -gt 3 ]
then
echo "Count is greater than 3"
fi
C
if
"3 naht retaerg si tnuoC" ohce
neht ;] 3 tg- tnuoc$ [ fi
5=tnuoc
hsab/nib/!#
D
!/bin/bash
count=5
if [ $count -gt 3 ]; then
echo "Count is greater than 3"
fi
Attempts:
2 left
💡 Hint
Check if the 'then' keyword is present after the if condition.
💻 Command Output
advanced
2:00remaining
What is the output of this script using command substitution?
This script stores the current date in a variable and prints it. What will it output?
Bash Scripting
#!/bin/bash
current_date=$(date +"%Y-%m-%d")
echo "Today is $current_date"
AToday is 2024-06-01
BToday is $(date +"%Y-%m-%d")
CToday is %Y-%m-%d
DError: command not found
Attempts:
2 left
💡 Hint
The $(...) syntax runs the command inside and replaces it with its output.
🚀 Application
expert
2:00remaining
How many lines will this script output?
This script reads a file line by line and counts lines containing 'error'. How many lines will it print?
Bash Scripting
#!/bin/bash
count=0
while IFS= read -r line; do
  if [[ $line == *"error"* ]]; then
    ((count++))
  fi
done < input.txt
echo $count
A0
B5
CError: input.txt not found
D3
Attempts:
2 left
💡 Hint
If the file input.txt does not exist, the script will fail.

Practice

(1/5)
1. What is the purpose of the first line #!/bin/bash in a Bash script?
easy
A. It comments out the first line so it is ignored.
B. It prints a welcome message when the script runs.
C. It sets the script to run in the background automatically.
D. It tells the system to use the Bash shell to run the script.

Solution

  1. Step 1: Understand the shebang line

    The line #!/bin/bash is called a shebang and tells the system which interpreter to use.
  2. Step 2: Identify its role in script execution

    This line ensures the script runs with the Bash shell, not another shell or program.
  3. Final Answer:

    It tells the system to use the Bash shell to run the script. -> Option D
  4. Quick Check:

    Shebang = Bash interpreter [OK]
Hint: Shebang line always points to the shell interpreter [OK]
Common Mistakes:
  • Thinking it prints a message
  • Confusing it with a comment
  • Assuming it runs script in background
2. Which of the following is the correct way to print "Hello, World!" in a Bash script?
easy
A. echo "Hello, World!"
B. printf(Hello, World!)
C. console.log("Hello, World!")
D. print("Hello, World!")

Solution

  1. Step 1: Identify the Bash command for output

    In Bash, echo is used to print text to the screen.
  2. Step 2: Check syntax correctness

    echo "Hello, World!" correctly prints the message with quotes around the string.
  3. Final Answer:

    echo "Hello, World!" -> Option A
  4. Quick Check:

    Print command in Bash = echo [OK]
Hint: Use echo to print text in Bash scripts [OK]
Common Mistakes:
  • Using print() like in Python
  • Using console.log() from JavaScript
  • Missing quotes in printf
3. What will be the output of this Bash script?
#!/bin/bash
echo "Start"
echo "End"
medium
A. Start\nEnd
B. Start End (two lines)
C. Start End
D. Start End

Solution

  1. Step 1: Understand echo behavior

    The echo command prints text followed by a new line by default.
  2. Step 2: Analyze the script output

    Two echo commands print "Start" and "End" each on its own line.
  3. Final Answer:

    Start End (two lines) -> Option B
  4. Quick Check:

    echo adds newline = two lines output [OK]
Hint: Each echo prints on a new line by default [OK]
Common Mistakes:
  • Thinking echo prints on same line
  • Confusing \n as literal text
  • Ignoring new line after echo
4. Identify the error in this Bash script:
#!/bin/bash
echo Hello World
medium
A. Missing quotes around Hello World
B. echo command is misspelled
C. No error, script runs fine
D. Missing shebang line

Solution

  1. Step 1: Check script syntax

    The script has a correct shebang line and uses echo properly.
  2. Step 2: Understand echo argument rules

    Quotes are optional if no special characters or spaces that confuse shell; here it works fine.
  3. Final Answer:

    No error, script runs fine -> Option C
  4. Quick Check:

    echo without quotes works here [OK]
Hint: Quotes optional if no special chars or spaces [OK]
Common Mistakes:
  • Assuming quotes are always required
  • Thinking shebang is missing
  • Believing echo is misspelled
5. You want to write a Bash script that prints your name and then the current date. Which script below will do this correctly?
hard
A. #!/bin/bash echo "My name is Alice" date
B. #!/bin/bash print "My name is Alice" date
C. #!/bin/bash echo My name is Alice current_date
D. #!/bin/bash echo "My name is Alice"; date %Y-%m-%d

Solution

  1. Step 1: Check commands for printing text and date

    echo prints text; date prints current date and time.
  2. Step 2: Verify script correctness

    #!/bin/bash echo "My name is Alice" date uses echo correctly and calls date without errors.
  3. Final Answer:

    #!/bin/bash\necho "My name is Alice"\ndate -> Option A
  4. Quick Check:

    Use echo and date commands correctly [OK]
Hint: Use echo for text and date command for current date [OK]
Common Mistakes:
  • Using print instead of echo
  • Calling undefined commands like current_date
  • Incorrect date command syntax
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