Introduction to Variables in Bash Scripting [An Ultimate Guide]

Bash variables are essential components of shell scripting, providing a means to store and manipulate data within the Unix and Linux command-line interface. In this article, I will explore the fundamentals of Variables in Bash Script, including their types, declaration, assignment, and usage. So let’s start!

Key Takeaways

  • Getting familiar with the basic concept of Bash Variables.
  • Learning the types of Bash Variable in Bash Scripting.
  • Learning about Special and Environmental Variables.

Basic Concepts of Bash Variables

A bash variable serves as a temporary storage container for strings or numbers in bash scripting. They play a significant role in enabling users to write intricate functions and perform diverse operations.

Creating variables involves assigning them a name and a corresponding value. When it comes to assigning a value, you have the freedom to use any string or number that suits your needs. It is often beneficial to choose a name for the variable that reflects its value, as it makes it easier to remember and distinguish from other variables in your script.

Here are a few other important syntax considerations you should keep in mind:

  1. When assigning a value to a variable, avoid using spaces around the equals sign (=). For example, use variable=value instead of variable = value.
  2. To access the value stored in a variable, use the dollar sign ($) followed by the variable name. For example, the $age will expand to the value stored in the age variable.
  3. You can assign the output of a command to a variable using command substitution. Enclose the command within backticks () or use the $(command) syntax. For example, variable=command or variable=$(command).
  4. When using variables within quotes, consider the type of quoting to preserve the value. Double quotes (“”) allow variable expansion, while Single quotes (‘’) preserve the variable name as a literal string.
  5. To unset a variable and remove its value, use the unset command followed by the variable name. For example, unset variable.

By keeping these syntax formats in mind, you can avoid common errors and effectively work with bash variables in your scripts.

Types of Variables in Bash Scripting

Bash Variables are divided into two types depending on their deployment, system-defined and User Defined variables. Let’s have an understanding of both types in greater detail.

A. System-defined Variables

System-defined variables in Bash are predefined variables that provide information about the system and the shell environment. The system automatically sets these variables and can be accessed and utilized within shell scripts. Here are some commonly used system-defined variables in Bash scripting:

Variables Example Function
Bash No explicit type declaration required (x) Optional initialization (x = 5)
C Requires explicit type declaration (int x;) Optional initialization (int x = 5;)
C++ Requires explicit type declaration (int x;) Requires explicit type declaration (int x;)
Java Requires explicit type declaration (int x;) Mandatory initialization (int x = 5;)
Python No explicit type declaration required (x = 5) Optional initialization (x = 5)
JavaScript No explicit type declaration required (let x) Optional initialization (let x = 5)
MATLAB No explicit type declaration required (x) Optional initialization (x = 5)

B. User-defined Variables

User-defined variables in Bash are variables that you create and assign values to within your shell scripts. The system does not predefine these variables and can be customized to suit your specific needs.

Working With Variables in Bash Scripting

Working with variables in Bash Scripting encompasses different contexts such as working with special variables, and environment variables other than just writing a bash command in your script. By understanding and utilizing variables in these various contexts, you gain the ability to customize behavior, perform calculations, handle user input, and adapt scripts to different scenarios. Down below, Here’s a discussion of working with variables in Bash scripting. So, let’s jump into it.

1. Variables Data Type in Bash Scripting

In Bash scripting, variables are not explicitly declared with a specific data type. Bash uses a concept called dynamic typing, which means that variables can hold values of different types, and their type can change as needed.

Here are some important points to understand about variable data types in Bash scripting:

  1. String:  By default, variables in Bash are treated as strings. They can hold sequences of characters, including letters, numbers, and special characters. For example name=”John”, age=”25″.
  2. Integer: Bash also supports integer arithmetic, but you need to use specific constructs for numeric operations. You can use the let command or arithmetic expansion with double parentheses to perform arithmetic operations. For example num1=10, num2=5.
  3. Arrays: Bash supports one-dimensional arrays that can hold multiple values. For example fruits=(“apple” “banana” “orange”). Bash also supports associative arrays, which allow you to use strings as indexes.

Boolean variables: Bash doesn’t have a dedicated boolean data type, but you can use variables to represent true/false values. For example isTrue=true, isFalse=false.

2. Creating Your Own Variables in Bash Scripting

When you create variables in Bash, any variable that is not an environment variable is considered your own. These variables are specific to your script and cannot be accessed or modified outside of it. This ensures that the variables you define do not interfere with other scripts or the system’s environment.

It is important to follow the variable naming rules to avoid syntax errors. Variables cannot start with a number because Bash interprets it as a numeric value. Additionally, spaces are not allowed within variable names as they are used as separators between different elements in Bash scripts.

However, you can use underscores (_) and capital letters in variable names. Capital letters can also be used, but it is worth noting that Bash is case-sensitive, so using consistent capitalization is important to ensure proper variable references throughout your script.

3. Special Variables Used in Bash Scripting

Working with special variables in Bash provides access to predefined values that convey specific information about the environment and script execution. Additionally, These variables serve various purposes and assist in scripting tasks. Here are some commonly used special variables described below:

Special variable Explanation
$0 Represents the name of the script itself.
$1, $2, $3, etc. These represent the command-line arguments passed to the script.
$# Indicates the total number of command-line arguments.
$@ Represents all the command-line arguments as separate words.
$? Stores the exit status of the last executed command.
$$ Represents the process ID (PID) of the current script.
$! Stores the PID of the last background process.
$_ Sets the variable to the latest argument of the last command.
$- Displays the currently used flags on the bash shell.
$* Groups all given arguments by connecting them together.

4. Working With Environment Variables

Environment Variables in Bash are accessible to all scripts running on a particular system. Unlike local variables, environment variables are automatically defined by the system. There is another significant aspect of environment variables is that those variables are written in capital letters. It gives a clear indication to the users that they are working with Environmental Variables. Here’s an overview of how you can work with environment variables in Bash scripts:

  1. Accessing environment variables: To access the value of an environment variable, you can use the $ symbol followed by the variable name.
  2. Setting environment variables: To set an environment variable within a Bash session, you can use the export command. To make the variable persistent across multiple Bash sessions, you can add the export command to your shell configuration file (e.g., ~/.bashrc or ~/.bash_profile).
  3. Deleting environment variables: To delete an environment variable, you can use the unset command.
  4. Listing all environment variables: To list all environment variables set in your Bash session, you can use the env command or the printenv command.

5. Quotes in Bash Variables

In Bash scripting, quotes play a significant role in working with variables. Double quotes (“”) are commonly used to expand variables and substitute their values, execute commands, and capture their output, as well as escape certain characters.

On the other hand, single quotes (”) treat variables and special characters as literal strings, preventing any expansion or substitution. Choosing the appropriate type of quotes is crucial in manipulating variables effectively within Bash scripts.


In conclusion, the variable is an essential component in Bash Scripting. It stores and manipulates data, enabling calculations, user input, and data storage. In this article, I have tried to give you a glimpse of an idea about Variables in Bash Script. However, if you have any queries related to this, feel free to comment below. Thank You!

People Also Ask

What are bash variables?
Bash variables are used to store data, such as strings or numbers, within a Bash script. They serve as temporary storage locations that can be accessed and manipulated throughout the script’s execution.

How to use variables in bash?
To use variables, you assign a value to them using the syntax variable_name=value. Later, The assigned value can be accessed by prefixing the variable name with a dollar sign ($). 

What is $[] in bash?
In Bash, ${} is used for variable substitution or parameter expansion. It allows accessing variable values, setting default values, calculating lengths, extracting substrings, and accessing array elements.

How do I run a Bash file?
To run a Bash file, make the file executable using chmod +x Then execute the file using ./

Related Articles

<< Go Back to Bash Variables | Bash Scripting Tutorial

Rate this post
Mohammad Shah Miran

Hey, I'm Mohammad Shah Miran, previously worked as a VBA and Excel Content Developer at SOFTEKO, and for now working as a Linux Content Developer Executive in LinuxSimply Project. I completed my graduation from Bangladesh University of Engineering and Technology (BUET). As a part of my job, i communicate with Linux operating system, without letting the GUI to intervene and try to pass it to our audience.

2 thoughts on “Introduction to Variables in Bash Scripting [An Ultimate Guide]”

  1. Hi Mr Miran. I have not read a better article than this on variables. So beautifully explained. Could you please let me know where can I access other articles written by you on bash scripting or linux or git maybe. Or if you have written a book.

    • Hello,
      Thank you for your kind words. I’m glad to hear that you enjoyed my article. If you’d like to read more of my articles, you can follow my profile and read as many as you’d like. Unfortunately, I haven’t written any books yet, but LinuxSimply is a growing community with a strong team that provides various solutions related to Linux. Please feel free to explore our website and share your thoughts in the comments. Have a great day!


Leave a Comment