Bird
Raised Fist0
Bash Scriptingscripting~10 mins

Creating a script file (.sh) in Bash Scripting - Visual Walkthrough

Choose your learning style10 modes available
Concept Flow - Creating a script file (.sh)
Open text editor
↓
Write script lines
↓
Save file with .sh extension
↓
Make file executable
↓
Run script in terminal
↓
See output or result
This flow shows how to create a shell script file, make it executable, and run it to see the output.
Execution Sample
Bash Scripting
#!/bin/bash

echo "Hello, world!"
This script prints 'Hello, world!' to the terminal when run.
Execution Table
StepActionCommand/CodeResult/Output
1Open text editornano hello.shText editor opens with new file
2Write script lines#!/bin/bash echo "Hello, world!"Script content written in editor
3Save fileCtrl+O then EnterFile 'hello.sh' saved
4Exit editorCtrl+XBack to terminal
5Make file executablechmod +x hello.shFile permission changed to executable
6Run script./hello.shHello, world!
7EndScript finished runningTerminal prompt returns
💡 Script runs once and ends after printing the message.
Variable Tracker
VariableStartAfter Step 2After Step 5After Step 6
script_filenonehello.sh content written in editorhello.sh marked executablescript executed, output shown
Key Moments - 3 Insights
Why do we add #!/bin/bash at the top of the script?
This line tells the system to use the bash shell to run the script, as shown in execution_table step 2.
Why do we need to run chmod +x before running the script?
chmod +x makes the script file executable, allowing the system to run it, as seen in execution_table step 5.
What happens if we try to run the script without ./ before the filename?
The system may not find the script because current directory is not in PATH; using ./hello.sh runs it explicitly, shown in step 6.
Visual Quiz - 3 Questions
Test your understanding
Look at the execution table, what command makes the script file executable?
A./hello.sh
Bchmod +x hello.sh
Cnano hello.sh
Decho "Hello, world!"
💡 Hint
Check step 5 in the execution_table where file permissions change.
At which step does the script actually run and print output?
AStep 2
BStep 4
CStep 6
DStep 1
💡 Hint
Look for the step where './hello.sh' is executed and output appears.
If you forget to add #!/bin/bash at the top, what might happen?
AScript may run with a different shell or error
BScript runs normally without any issue
Cchmod +x will fail
DFile won't save
💡 Hint
Refer to key_moments about the purpose of the shebang line.
Concept Snapshot
#!/bin/bash at top tells system to use bash
Write commands in plain text editor
Save file with .sh extension
Make executable with chmod +x
Run script with ./filename.sh
Script runs and shows output in terminal
Full Transcript
To create a shell script file, first open a text editor like nano. Write your script lines, starting with #!/bin/bash to specify the shell. Save the file with a .sh extension, for example hello.sh. Exit the editor and make the file executable by running chmod +x hello.sh in the terminal. Finally, run the script by typing ./hello.sh. The script will execute and print its output, such as 'Hello, world!'. This process ensures your script runs correctly in the bash shell.

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