Home Learn Linux How to Properly Execute Shell Scripts in Linux

How to Properly Execute Shell Scripts in Linux

Executing shell scripts is a common task in Linux for automating processes. This guide provides detailed instructions on how to run shell scripts, including setting permissions and using the correct commands to ensure smooth execution.

by Arun Kumar
Published: Updated:
shell script execution in linux

Executing a shell script in Linux is one of those essential skills every Linux user or admin should master. Knowing how to run a script is invaluable for automating tasks, setting up a cron job, or simply trying to manage system operations. I’m a fan of efficiency and simplicity, which is why I lean heavily on scripting. But, there’s a certain joy in writing scripts that not only work but are also elegant and clean. Let’s walk through how to execute a shell script in Linux, with examples and some of my personal preferences.

What is a shell script?

Before we dig into execution, let’s quickly recap what a shell script is. A shell script is a text file that contains a sequence of commands for a Unix-based shell, like Bash, to execute. It’s essentially a program written in the command-line language of the shell.

Step 1: Create a simple shell script

The first step to executing a script is, naturally, writing one. For this example, let’s create a simple script that prints “Hello, World!” and the current date.

Open a terminal on your Ubuntu system and use your favorite text editor to create a new file. I’m using nano for quick edits because it’s straightforward, but you might prefer vim if you like something more powerful.

nano hello_world.sh

Inside the editor, type the following script:

#!/bin/bash
echo "Hello, World!"
echo "Today's date is: $(date)"

This script does two things: it prints “Hello, World!” and then shows the current date. The #!/bin/bash at the top is called a shebang, and it tells the system that this script should be run in the Bash shell.

Step 2: Make the script executable

By default, the script you just created isn’t executable. You need to grant execute permissions using the chmod command. This is one of those steps that’s easy to forget, but it’s crucial.

chmod +x hello_world.sh

The +x option makes the script executable by the user, group, and others, depending on your permissions setup.

Step 3: Execute the shell script

Now, you’re ready to run the script. There are a few ways to execute a script in Linux, and I’ll cover the most common methods:

Method 1: Execute using the relative path

This is the most straightforward method if you’re in the same directory as the script:

./hello_world.sh

The ./ tells the shell to look for the script in the current directory. If all goes well, you should see the following output:

Hello, World!
Today's date is: Tue Aug 8 14:22:31 UTC 2024
Method 2: Execute using the absolute path

Sometimes, you’ll need to specify the full path to the script, especially if it’s located in a different directory.

/home/username/scripts/hello_world.sh

This method is handy when running scripts from cron jobs or within other scripts.

Method 3: Execute with a specific shell

Though the shebang specifies which shell to use, you can override this by running the script with a different shell. For example, if you want to run it with sh instead of bash, you can do:

sh hello_world.sh

Or, explicitly with bash:

bash hello_world.sh

This can be useful when testing how your script behaves in different shells.

Debugging common issues

Even simple scripts can run into issues. Here are a few common problems and how to troubleshoot them:

  • Permission denied: If you see this error, double-check that you’ve made the script executable with chmod +x.
  • Command not found: This usually means the script’s shebang line is missing or incorrect, or the script is not in your PATH.
  • Script does not run as expected: Use bash -x followed by your script name to run the script in debug mode. This will show each command as it’s executed, which is great for finding where things go wrong.

Tips and best practices

  • Keep scripts simple: I’m a big believer in keeping scripts as simple as possible. If your script is getting too complex, consider breaking it into smaller scripts or functions.
  • Use comments: Always comment your code. It makes your scripts more maintainable, especially when you (or someone else) come back to them after a few months.
  • Error handling: Always account for errors. Use conditional statements and exit codes to ensure your script behaves predictably.

Conclusion

Executing a shell script in Linux is a fundamental task that opens up a world of automation and efficiency. For tasks such a as managing a server or just trying to automate a few things on your local machine, shell scripting is a skill worth honing. Personally, I find it immensely satisfying to see a well-crafted script run flawlessly, saving time and reducing the chance of human error.

So, go ahead, write your scripts, execute them, and make your Linux experience as efficient as possible!

You may also like

Leave a Comment

fl_logo_v3_footer

ENHANCE YOUR LINUX EXPERIENCE.



FOSS Linux is a leading resource for Linux enthusiasts and professionals alike. With a focus on providing the best Linux tutorials, open-source apps, news, and reviews written by team of expert authors. FOSS Linux is the go-to source for all things Linux.

Whether you’re a beginner or an experienced user, FOSS Linux has something for everyone.

Follow Us

Subscribe

©2016-2023 FOSS LINUX

A PART OF VIBRANT LEAF MEDIA COMPANY.

ALL RIGHTS RESERVED.

“Linux” is the registered trademark by Linus Torvalds in the U.S. and other countries.