📖 Scenario: You want to create a simple bash script that prints a greeting message. To make sure your script runs correctly on any Linux system, you need to add a special first line called the shebang line.This line tells the system which program to use to run your script.
🎯 Goal: Build a bash script that starts with the shebang line #!/bin/bash and prints the message Hello, world!.
📋 What You'll Learn
Create a bash script file
Add the shebang line #!/bin/bash as the first line
Write a command to print Hello, world!
Run the script to see the output
💡 Why This Matters
🌍 Real World
Scripts with a shebang line run correctly on Linux systems without needing to type the interpreter manually.
💼 Career
Knowing how to write and run bash scripts with a shebang line is essential for system administrators and developers automating tasks.
Progress0 / 4 steps
1
Create the bash script file with the shebang line
Create a file named greet.sh and write the first line exactly as #!/bin/bash to specify the bash shell.
Bash Scripting
Hint
The shebang line must be the very first line in your script.
2
Add a greeting message command
Below the shebang line, add a command to print the text Hello, world! using echo.
Bash Scripting
Hint
Use echo "Hello, world!" to print the message.
3
Make the script executable
Use the command chmod +x greet.sh in the terminal to make the script executable. (This step is for your understanding; no code to write here.)
Bash Scripting
Hint
Making the script executable allows you to run it directly.
4
Run the script and see the output
Run the script by typing ./greet.sh in the terminal and observe the output.
Bash Scripting
Hint
The output should exactly be Hello, world!
Practice
(1/5)
1. What is the main purpose of the shebang line #!/bin/bash in a script?
easy
A. It sets the script's file permissions to executable.
B. It comments out the first line of the script.
C. It tells the system to use the Bash shell to run the script.
D. It defines a variable named shebang.
Solution
Step 1: Understand the shebang line role
The shebang line starts with #! and specifies the interpreter for the script.
Step 2: Identify the interpreter in the line
/bin/bash means the script will run using the Bash shell.
Final Answer:
It tells the system to use the Bash shell to run the script. -> Option C
Quick Check:
Shebang = interpreter path [OK]
Hint: Shebang line always shows which shell runs the script [OK]
Common Mistakes:
Thinking it is a comment line
Confusing it with file permissions
Assuming it defines variables
2. Which of the following is the correct way to write a shebang line for a Bash script?
easy
A. !#/bin/bash
B. #!/bin/sh
C. #!/bash/bin
D. #!/bin/bash
Solution
Step 1: Check the correct shebang syntax
The shebang line must start with #! followed by the full path to the interpreter.
Step 2: Verify the path for Bash
The correct path for Bash is /bin/bash, so the line is #!/bin/bash.
Final Answer:
#!/bin/bash -> Option D
Quick Check:
Shebang = #! + interpreter path [OK]
Hint: Shebang always starts with #! followed by interpreter path [OK]
Common Mistakes:
Swapping the order of # and !
Using wrong interpreter path
Confusing /bin/sh with /bin/bash (different shells)
3. Given this script saved as test.sh with executable permission:
#!/bin/bash
echo "Hello, $USER!"
What will be the output when you run ./test.sh?
medium
A. Hello, $USER!
B. Hello, your_username!
C. Hello, root!
D. Syntax error
Solution
Step 1: Understand the shebang effect
The shebang #!/bin/bash runs the script with Bash, which expands variables like $USER.
Step 2: Predict variable expansion
$USER is replaced by the current user's username, so output is Hello, your_username!.
Final Answer:
Hello, your_username! -> Option B
Quick Check:
Variable expansion in Bash = username [OK]
Hint: Bash expands $USER to your username when run with shebang [OK]
Common Mistakes:
Thinking $USER prints literally
Assuming root user always runs script
Expecting syntax error from shebang
4. You wrote a script starting with this line:
#! /bin/bash
But when you run it, you get: bad interpreter: No such file or directory. What is the likely problem?
medium
A. There is a space between #! and /bin/bash.
B. The script file is not executable.
C. The /bin/bash path does not exist on the system.
D. The script has Windows line endings.
Solution
Step 1: Check the shebang syntax
The shebang must start exactly with #! with no space after it.
Step 2: Identify the error cause
A space after #! causes the system to look for an invalid interpreter path, causing the error.
Final Answer:
There is a space between #! and /bin/bash. -> Option A
Quick Check:
No space after #! in shebang [OK]
Hint: No spaces allowed between #! and interpreter path [OK]
Common Mistakes:
Ignoring spaces in shebang line
Assuming file permission error
Not checking interpreter path correctness
5. You want to write a script that runs with Bash but also works if run with sh script.sh (without executable permission). Which shebang line should you use to ensure it always runs with Bash when executed directly?
hard
A. #!/usr/bin/env bash
B. #!/bin/bash
C. #!/bin/sh
D. #!/usr/local/bin/bash
Solution
Step 1: Understand shebang with env
#!/usr/bin/env bash uses the env command to find Bash in the user's PATH, making it portable.
Step 2: Compare with fixed paths
/bin/bash may not exist on all systems, and /bin/sh is often not Bash. /usr/local/bin/bash is less common.
Step 3: Ensure script runs with Bash when executed directly
Using #!/usr/bin/env bash ensures the script runs with Bash regardless of its location.
Final Answer:
#!/usr/bin/env bash -> Option A
Quick Check:
Use env to find Bash for portability [OK]
Hint: Use #!/usr/bin/env bash for portable Bash scripts [OK]
Common Mistakes:
Using /bin/sh which may not be Bash
Assuming /bin/bash exists everywhere
Ignoring PATH differences on systems
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.