How to Execute A Shell Script on Linux?

13 minutes read

To execute a shell script on Linux, you need to follow these steps:

  1. Open a terminal: Launch the terminal application on your Linux system. You can usually find it in the applications menu or by using the keyboard shortcut Ctrl+Alt+T.
  2. Navigate to the script's location: Use the cd command to navigate to the directory where the shell script is located. For example, if the script is in your home directory, you can type cd ~ to go there.
  3. Check permissions: Ensure that the script has the execute permission. You can use the ls -l command to list the files in the directory and view their permissions. If your script doesn't have the execute permission (indicated by an 'x'), use the chmod +x command to add it. Replace with the actual name of your shell script.
  4. Execute the script: To run the shell script, simply type its name preceded by ./. For example, if your script is named, you would enter ./ in the terminal.
  5. Press Enter: After typing the command, press the Enter key to execute the script.

That's it! The shell script will now be executed, and you will see the output or the actions performed by the script in the terminal. Remember to provide any required input when prompted by the script.

Best Web Hosting Providers of May 2024


Rating is 5 out of 5


  • Ultra-fast Intel Core Processors
  • Great Uptime and Support
  • High Performance and Cheap Cloud Dedicated Servers
Digital Ocean

Rating is 4.9 out of 5

Digital Ocean

  • Professional hosting starting at $5 per month
  • Remarkable Performance

What is the exit status of a shell script on Linux?

The exit status of a shell script on Linux is a numerical value that indicates the outcome of the execution of the script.

By convention, an exit status of 0 typically indicates successful execution without any errors. Any non-zero value generally signifies some kind of error or failure. Different non-zero values can be used to convey specific types of errors or circumstances.

The exit status of a shell script can be manually set using the "exit" command within the script, or it can be implicitly determined by the return value of the last command executed in the script.

What is the purpose of comments in a shell script?

The purpose of comments in a shell script is to provide additional information and documentation about the code to make it more understandable and maintainable for both the script author and other developers who may need to read or modify the script later. Comments are non-executable lines that are ignored by the shell interpreter and are usually used to explain the purpose, logic, or functionality of the code. They can also be used to disable a particular block of code temporarily without deleting it. Comments improve the readability, clarity, and maintainability of the shell script.

What is the difference between environment variables and shell variables?

Environment variables and shell variables are both used to store values that can be accessed and used within the shell environment. However, there are some key differences between them.

  1. Scope: Environment variables are accessible by all processes in the current session, including child processes. They are inherited by all processes that are spawned by the current session. On the other hand, shell variables are only accessible within the current shell session or script and are not passed on to child processes.
  2. Persistence: Environment variables are typically stored in the system and persist across sessions, meaning they are available even after the session is closed and reopened. Shell variables, however, are temporary and exist only as long as the shell session or script is running.
  3. Setting and accessing: Environment variables are usually set and accessed using the shell's built-in export command like "export VARNAME=value". This allows them to be available to child processes. Shell variables, on the other hand, can be set and accessed directly without the need for the export command, using "VARNAME=value".
  4. Default values: Environment variables often have globally defined default values, set by the system or applications. Shell variables do not have any predefined default values and need to be explicitly set.

Overall, environment variables have a broader scope and are more useful for settings or values that need to be accessed by multiple processes, while shell variables are typically used for temporary and local use within the current shell session or script.

Best Linux Ubuntu Books in 2024

Official Ubuntu Book, The

Rating is 5 out of 5

Official Ubuntu Book, The

Ubuntu Linux Bible

Rating is 4.9 out of 5

Ubuntu Linux Bible

Ubuntu Linux Unleashed 2021 Edition

Rating is 4.8 out of 5

Ubuntu Linux Unleashed 2021 Edition

Linux Basics for Hackers: Getting Started with Networking, Scripting, and Security in Kali

Rating is 4.7 out of 5

Linux Basics for Hackers: Getting Started with Networking, Scripting, and Security in Kali

Learn Linux Quickly: A Comprehensive Guide for Getting Up to Speed on the Linux Command Line (Ubuntu) (Crash Course With Hands-On Project)

Rating is 4.6 out of 5

Learn Linux Quickly: A Comprehensive Guide for Getting Up to Speed on the Linux Command Line (Ubuntu) (Crash Course With Hands-On Project)

Mastering Ubuntu Server: Explore the versatile, powerful Linux Server distribution Ubuntu 22.04 with this comprehensive guide, 4th Edition

Rating is 4.5 out of 5

Mastering Ubuntu Server: Explore the versatile, powerful Linux Server distribution Ubuntu 22.04 with this comprehensive guide, 4th Edition

How to write a shell script on Linux?

To write a shell script on Linux, follow these steps:

  1. Open a text editor: Start by opening a text editor on your Linux system. Common text editors include "nano," "vi," or "gedit." Choose the one that you are comfortable with or prefer.
  2. Declare the script's interpreter: On the first line of the script, specify the interpreter to be used, such as bash, sh, or another shell. For example, to use the bash interpreter, start the script with #!/bin/bash.
  3. Write the code: Add the desired commands and actions to your script. Shell scripts can contain any valid Linux command or shell-built in functions. For example, you can include variable assignments, if statements, loops, and more.
  4. Add comments (optional): Include comments using the "#" symbol. Comments are helpful for documenting the script and explaining its functionality.
  5. Save the file: Save the file with a ".sh" extension to indicate that it is a shell script. For example, you can save it as "".
  6. Make the script executable (optional): If you want to run the script directly without specifying the interpreter, you need to make it executable. Open a terminal and use the chmod command to set the executable permissions. For example, run chmod +x
  7. Run the script: To execute the script, open a terminal, navigate to the directory where the script is saved, and run ./ if you made it executable. Otherwise, run bash or sh if you didn't make it executable.

By following these steps, you can create and execute a shell script on Linux.

How to pass arguments to a shell script on Linux?

There are a few different ways to pass arguments to a shell script on Linux. Here are a couple of common methods:

  1. Positional parameters: When you run a shell script, you can pass arguments directly after the script name. These arguments are called positional parameters and they are automatically assigned to special variables in the script, namely $1, $2, $3, and so on. For example, if your script is called "" and you want to pass two arguments, you can run: ./ arg1 arg2 Inside the script, you can access these arguments using $1 and $2.
  2. Command-line options: Another way to pass arguments is to use command-line options. This is often done using the getopts command or by parsing the arguments manually. The getopts command is a built-in utility that allows you to define and handle options in your script. For example, you can define a script with an option -f that expects a filename as its argument: while getopts ":f:" opt; do case ${opt} in f ) file=$OPTARG;; \? ) echo "Invalid option: -$OPTARG"; exit 1;; : ) echo "Option -$OPTARG requires an argument"; exit 1;; esac done shift $((OPTIND -1)) In this case, you can run the script with the option and its argument: ./ -f myfile.txt Inside the script, you can access the value of the argument with $file.

These are just two common methods for passing arguments to shell scripts on Linux. Depending on your specific requirements, there may be other approaches or techniques you can use.

What is a shell script and its purpose?

A shell script is a plain text file that contains a series of commands and instructions in a specific scripting language, such as Bash for Unix-like operating systems. Its purpose is to automate the execution of repetitive tasks or to combine multiple commands into a single script for easy execution.

Shell scripts are commonly used for system administration, software application deployment, and task scheduling. They allow users to write a sequence of commands that can be executed as a single unit, saving time and effort. Additionally, shell scripts can handle variables, loops, conditions, and logical operations, making them powerful for various automation scenarios.

How to debug a shell script on Linux?

Debugging a shell script on Linux can be done using the following methods:

  1. Enable debug mode: One way to debug a shell script is to enable debug mode by adding the following line at the beginning of the script: #!/bin/bash -x This will print each command and its arguments as they are executed.
  2. Add debug statements: Insert various echo statements in the script to print intermediate values, variable contents, or messages at strategic points. These statements can help in identifying the issues by tracking the flow of the script. #!/bin/bash echo "Script started." # some code... echo "Variable value: $var" # more code... echo "Script finished." By observing the output, you can locate where exactly the script is encountering problems.
  3. Use the set command: By using the set command with different options, you can enable additional debugging features such as tracing the command before it is executed (set -x), turning off or on tracing, exit on any error (set -e), etc. These options help in tracking the execution flow and identifying error-prone areas. #!/bin/bash set -x # Enable tracing # Rest of the script... set +x # Disable tracing
  4. Logging: Redirecting the output of the script to a log file or a specific debugging file can help capture any errors or debug information for further analysis. For example: #!/bin/bash exec 3>&1 4>&2 trap 'exec 2>&4 1>&3' 0 1 2 3 exec 1>log.out 2>&1 # Rest of the script... This will redirect all output (including error messages) to the specified log file.
  5. Use a shell debugger: Tools like bashdb and kshdb provide a debugging environment for shell scripts. They allow breakpoints, stepping through code, inspecting variables, and other features similar to traditional debuggers. For example, to use bashdb: $ bashdb This will start the debugger and allow you to interactively debug the script.

Remember to remove or disable any debugging code once the script is working as expected to avoid cluttering or affecting its performance.

Facebook Twitter LinkedIn Telegram Whatsapp Pocket

Related Posts:

To pass a seconds variable from bash to Perl, you can use command line arguments. In your bash script, you can call the Perl script and pass the seconds variable as an argument. For example:Bash script: #!/bin/bash seconds=60 perl $seconds Perl scri...
To call a function from a script in another script in MATLAB, you need to first make sure that the function is saved in a separate file with a .m extension. Then, in the script where you want to call the function, you can use the function name followed by pare...
To create a link to a script on Linux, you can use the ln command.The general syntax for creating a link is: ln -s <source_file> <destination_link> Here, <source_file> represents the path to the script you want to link, and <destination_li...
To log to a file from the Erlang shell, you can follow these steps:Open the Erlang shell by running the erl command in your terminal.Create a file using the file:open/2 function, which returns a file descriptor. For example, to open a file named "logfile.t...
In Bash scripting, command-line arguments allow you to provide input and parameters to a script during execution. Here's an overview of how to handle command-line arguments in a Bash script:To access the command-line arguments, you can refer to them using ...
To write a basic Bash script, follow these steps:Open a text editor and create a new file with a .sh extension (e.g., the script with a shebang, which tells the system to interpret the commands using Bash. Use "#!/bin/bash" at the begi...