FUNDAMENTALS A Complete Guide for Beginners
In Bash, the set command modifies shell options and parameters. When you use the set command followed by a hyphen and a variable name (set – $VARIABLE), it allows you to set the positional parameters in the shell. In this article, I am going to discuss how to set – $variable in Bash scripts. So, let’s start!
What is “set – $Variable” in Bash?
set-$VARIABLE serves to divide the value of a Bash Variable into separate words, utilizing the Internal Field Separator (IFS) as the separator. For instance, if VARIABLE holds the value “NY Ohio Miami“, executing “set – $VARIABLE” would assign the positional parameters as “NY“, “Ohio“, and “Miami“.
Initially, this might not appear exceedingly useful, but it can be a potent technique when applied appropriately. One prevalent application involves processing command-line arguments provided to a bash script. When executing a bash script, the positional parameters (i.e. $1, $2, etc.) represent the arguments passed to the script. By utilizing “set – $VARIABLE“, you can conveniently split a single argument into multiple words, enabling easier processing of the individual components.
2 Practical Examples to Use “Set – $Variable” in Bash Scripts
To understand the context fully how you can use the set – $variable command in Bash scripts, here I have provided two examples for your perusal. Check these out.
1. Using “set – $VARIABLE” in Bash Script
The set – $VARIABLE syntax allows you to set the positional parameters in a Bash script. Follow the steps specified below assign a string with the set – $VARIABLE command:
- At first, launch an Ubuntu terminal.
- Write the following command to open a file in Nano:
nano set_variable_1.sh
- Copy the script mentioned below:
#!/bin/bash # Set the value of $VARIABLE VARIABLE="Hello, World!" # Set the positional parameters using set - $VARIABLE set - "$VARIABLE" # Access and display the first positional parameter echo "First parameter: $1"
EXPLANATIONThe value of
$VARIABLE
is set to “Hello, World!”. Then, usingset - "$VARIABLE"
, the value of $VARIABLE is assigned as the first positional parameter ($1
). Finally, the echo command displays the first positional parameter. It is worth mentioning that if I did not use the set – “$VARIABLE” in the code, I had to assign the VARIABLE value to the positional parameter ($1) manually to channel the command line argument to the output line. In this case, the alternate line would beVARIABLE=$
1 instead of usingset - "$VARIABLE
“. - Press CTRL+O and ENTER to save the file; CTRL+X exit.
- Use the following command to make the file executable:
chmod u+x set_variable_1.sh
- Run the script by the following command:
./set_variable_1.sh
The output returns First parameter: Hello, World! Where Hello, World! acts as a positional parameter of the VARIABLE variable.
2. Applying Loop on the Elements of a List Stored in a Variable
Another frequent scenario where set – $VARIABLE comes in handy is when you need to iterate over the elements of a list stored in a variable. Let’s consider an example:
#!/bin/bash
# Set the value of $VARIABLE
VARIABLE="apple orange banana"
# Set the positional parameters using set - $VARIABLE
set - $VARIABLE
# Loop through the positional parameters and display each one
for param in "$@"; do
echo "Fruit: $param"
done
The value of $VARIABLE
has been set to a string containing three fruits separated by spaces: “apple orange banana“. Next, using set - $VARIABLE,
the value of $VARIABLE has been assigned as the positional parameter. This operation splits the string into separate elements and assigns them to $1, $2, and $3, respectively. Finally, The for loop iterates over the positional parameters (“$@”) and displays each fruit. The loop runs three times, once for each fruit, printing “Fruit: [fruit_name]” for each iteration.
As the VARIABLE variable stores the “apple orange banana“ string, set – $VARIABLE fragments the string based on the whitespace and later returns Fruit: apple, Fruit: orange, and Fruit: banana using the for loop.
Assignment Task on Bash Set Variable
- Create a new Bash script file named “variable_operations.sh” and then do an algebraic addition of two numbers by putting them in a variable initially. You have to use the set -$VARIABLE command to do the job.
- Suppose you have a file composed of 100 student names in it. Now your task is to list the name along with a unique number. If you already know how to crack it, share your thoughts in the comment section and disseminate your Bash knowledge to all.
Conclusion
In conclusion, set – $VARIABLE is a useful bash feature that allows you to split the value of a variable into separate words, using the IFS as the delimiter. It processes command-line arguments or to loop over the elements of a list stored in a variable. If you have any questions or queries related to this article, feel free to comment below.
People Also Ask
How to set bash variable to path?
To set a Bash variable to a path, you can use the following syntax: VARIABLE_NAME="/path/to/directory"
. Replace VARIABLE_NAME with the desired name for your variable, and “/path/to/directory” with the actual path you want to assign.
How do you set a variable PATH?
To set the variable PATH, open the environment variables settings and find “PATH” or “Path“. Add the desired directory paths separated by ; (Windows) or : (Unix-like). Save the changes, exit the settings, and restart the command prompt/terminal. Modifying PATH allows your operating system to locate executable files without specifying their full path.
Why we use curly bracket followed by $ sign in bash?
In bash, we use ${}
to reference variables in various contexts and to perform advanced operations such as string manipulation, arithmetic, and command substitution. It allows us to access the value stored in a variable and use it within a string or as an argument to a command or function.
What is set -e in Bash?
In Bash, the set -e
command enables the “exit immediately if a command exits with a non-zero status” behavior.
Related Articles
- How to Declare Variable in Bash Scripts? [5 Practical Cases]
- Bash Variable Naming Conventions in Shell Script [6 Rules]
- How to Assign Variables in Bash Script? [8 Practical Cases]
- How to Check Variable Value Using Bash Scripts? [5 Cases]
- How to Use Default Value in Bash Scripts? [2 Methods]
- How to Read Environment Variables in Bash Script? [2 Methods]
- How to Export Environment Variables with Bash? [4 Examples]
<< Go Back to Variable Declaration and Assignment | Bash Variables | Bash Scripting Tutorial