The Bash for loop is a powerful command-line tool that allows you to execute a command or series of commands for a specified number of times. It is a staple of shell scripting and can be used for tasks ranging from simple repetition to complex automation.
Requirements and Dependencies
To use the Bash for loop, you will need a Unix-based operating system such as Linux or macOS. You will also need to have the Bash shell installed on your system. Most Unix-based systems come with Bash pre-installed, but if you are using a different shell or are unsure if Bash is installed on your system, you can check by running the
echo $SHELL command. If the output is
/bin/bash, then Bash is installed on your system.
Syntax and Examples
The syntax of the Bash for loop is as follows:
for (( expression1; expression2; expression3 ))
expression1 is used to initialize the loop counter. The
expression2 is used to test the loop counter and decide whether to continue looping or not. The
expression3 is used to increment the loop counter.
Here is an example of how you could use the Bash for loop to print the numbers from 1 to 10:
for (( i=1; i<=10; i++ ))
This would output the following:
You can also use variables in the
expression3 fields. For example, you could use the following loop to print the numbers from 1 to 10, using the variable
start to specify the starting value and the variable
end to specify the ending value:
for (( i=$start; i<=$end; i++ ))
You can also use the Bash for loop to iterate over a list of items. For example, you could use the following loop to print the names of all the files in the
for file in /etc/*
This would output a list of all the files in the
/etc directory, such as:
Did you know that the Bash for loop can be used to iterate over a range of numbers in reverse order? To do this, you can use the
seq command to generate a list of numbers in reverse order, and then use the Bash for loop to iterate over the list.
For example, the following loop will print the numbers from 10 to 1 in reverse order:
for i in `seq 10 -1 1`
This would output the following:
5 Examples or Tips to Increase Productivity
- Use the Bash for loop to automate repetitive tasks. For example, if you need to perform a series of tasks on multiple files, you can use a Bash for loop to iterate over the list of files and perform the tasks on each file in turn. This can save you a lot of time and effort compared to manually performing the tasks on each file.
- Use the Bash for loop to perform tasks on a schedule. For example, you could use a Bash for loop to run a script every hour, every day, or every week. This can be done using the
cronutility, which allows you to schedule tasks to run at specific times or intervals.
- Use the Bash for loop to iterate over a list of items and perform actions on each item. For example, you could use a Bash for loop to iterate over a list of users and perform tasks such as adding users to a group, changing user permissions, or deleting users.
- Use the Bash for loop to automate system maintenance tasks. For example, you could use a Bash for loop to check the status of system services, restart services that have stopped, or alert you if a service is not running as expected.
- Use the Bash for loop to create custom scripts and utilities. For example, you could use a Bash for loop to create a script that checks the availability of a website or web server, or a script that performs backups of important files and directories.
Creating a bash script to search the current directory for the 5 most recently modified files.
# Store the list of files
# Loop through the list of files
for file in $files; do
# Check the last modified date of the file
if [ $(date -r $file +%s) -gt $(date --date="5 days ago" +%s) ]; then
# If the file was modified in the last 5 days, print it out
Now that you have learned about the Bash for loop, try using it to create a script that performs the following tasks:
- Iterates over a list of numbers from 1 to 10
- For each number, checks if it is odd or even
- If the number is odd, prints “odd”
- If the number is even, prints “even”
To test your script, you can use the following list of numbers:
1 2 3 4 5 6 7 8 9 10. The output of your script should be as follows: