Working With Variables In Bash

Last Updated on: August 9, 2020

A variable is a value that can change depending on conditions or data passed to the program. To work with the variable in bash, here are what you need to know:

  • A variable name cannot start with a number, and cannot contain spaces.
  • It can be alphanumeric
  • It can start with an underscore

To declare a variable, type the name you want and set its value using the equals sign (=), make sure there is no space between the variable name and the equal sign or between the equals sign and the value, otherwise it would throw an error.

For example:

					

#!/bin/bash
b="How are You"
c=15

To use this variable, you call it with a dollar sign in front of their name.

E.g:

					

#!/bin/bash
b="How are You"
c=15

echo $b
echo $c

This is my output:

					

user@server:~/bin$ hw4.sh
How are You
15

These variables can also work inside other variable or strings, just make sure they are double quoted, e.g:

					

#!/bin/bash
b="How are You"
c=15

echo "b! You are $c old."

Output:

					

user@server:~/bin$ hw4.sh

How are You! You are 15 old.

Also, you can give variable a special attribute, e.g declaring it as an integer or as a read-only, meaning it can’t be modified later arithmetically or with stream manipulation.

The one I find interesting is converting strings to a lowercase or uppercase:

  • declare -i b=700 #b is an integer
  • declare -r e=300 #e is read-only
  • declare -l j=”Lowercase” #j would be converted to lowercase
  • declare -u k=”Uppercase” #k would be converted to UPPERCASE

Major Built-in Variable

  • echo $PWD – Returns the current directory
  • echo $HOME – User home directory
  • echo $MACHTYPE – Returns the machine type, handy when working on a different platform
  • echo $HOSTNAME – Returns system name

 

Comment policy: Respectful and beneficial comments are welcome with full open hands. However, all comments are manually moderated and those that doesn't relate with what the passage is saying or offensive comments would be deleted. Thanks for understanding!

Leave a Reply

Your email address will not be published. Required fields are marked *