Step-by-Step Guide on How to Create a .sh File for Beginners

how to create a .sh file

How to Create a .sh File: A Comprehensive Guide

Creating a .sh file, commonly known as a shell script, is an essential skill for anyone working with Unix-based systems such as Linux and macOS. Shell scripts automate a series of commands, saving time and reducing errors in repetitive tasks. This guide will walk you through the steps to create a .sh file, from basic syntax to advanced scripting techniques, ensuring you understand each part of the process.

Understanding .sh Files

A .sh file is a script written for the Bourne shell or one of its compatible shells, like Bash (Bourne Again SHell). These scripts can contain commands, variables, loops, and conditional statements. They are used to perform complex operations, system administration tasks, and automate routine tasks.


Before you start creating a .sh file, you need:

  1. A Unix-based system: This includes Linux distributions, macOS, or Windows with WSL (Windows Subsystem for Linux).
  2. A text editor: Common options include nano, vim, gedit, or even a GUI-based editor like VSCode.

Step-by-Step Guide to Creating a .sh File

  1. Open a TerminalFirst, open your terminal application. This can usually be found in your system’s applications menu or by searching for “terminal.”
  2. Choose Your Text EditorYou can use any text editor to create your shell script. For simplicity, this guide will use nano, a user-friendly command-line text editor. You can open nano and create a new file with:

    Alternatively, you can use other editors like vim:

  3. Write Your ScriptBegin by writing the shebang at the top of your file. The shebang (#!) tells the system which interpreter to use to execute the script. For a Bash script, use:

    After the shebang, you can start writing your commands. Here’s a simple example:

    # This is a simple script
    echo "Hello, World!"

    In this script:

    • #!/bin/bash specifies the script should be run using the Bash shell.
    • echo "Hello, World!" prints “Hello, World!” to the terminal.
  4. Save and ExitIn nano, you can save your file and exit by pressing Ctrl + X, then Y to confirm, and Enter to save.In vim, press Esc, then type :wq and hit Enter.
  5. Make the Script ExecutableBefore you can run your script, you need to make it executable. Use the chmod command:
    chmod +x

    The +x flag adds executable permissions to the file.

  6. Run Your ScriptYou can now run your script using:

    This command executes the script in the current directory.

Enhancing Your Shell Script

  1. VariablesYou can define variables to store data that you can reuse in your script. For example:

    NAME="John Doe"

    echo "Hello, $NAME!"

  2. LoopsLoops allow you to execute a block of code multiple times. Here’s an example using a for loop:

    for i in {1..5}


    echo "Iteration $i"


  3. Conditional StatementsConditional statements allow your script to make decisions. Here’s an example using an if statement:


    if [ $NUMBER -gt 5 ]; then

    echo "The number is greater than 5"


    echo "The number is 5 or less"


  4. FunctionsFunctions help you organize your script into reusable blocks of code. Here’s an example:

    function greet() {

    echo "Hello, $1!"


    greet "John"

Best Practices for Shell Scripting

  • Use Comments: Comments (#) help you and others understand what your script does.
  • Error Handling: Use set -e to make your script exit on any error. This helps prevent partial executions.
  • Testing: Always test your script in a safe environment before using it in production.

Running .sh Files on Windows

If you’re using Windows, you can create and run .sh files using the Windows Subsystem for Linux (WSL). Here’s how:

  1. Install WSLOpen PowerShell as an administrator and run:
    wsl --install

    This will install WSL and a default Linux distribution.

  2. Open WSLOnce installed, open WSL from the Start menu.
  3. Create and Run the ScriptFollow the same steps mentioned above to create and run your script within the WSL environment.

Creating a .sh file is a fundamental skill for automating tasks and managing systems efficiently in Unix-based environments. By following this guide, you can create, enhance, and run shell scripts to streamline your workflow. Remember to adhere to best practices for readability and reliability. With practice, scripting will become an invaluable tool in your skill set, empowering you to perform complex tasks with ease and precision. Also read: how to run .sh files