Variables
Declaration
name=value # no space around '=' sign
student="Sarah"
Parameter expansion
${name} # reference a parameter
echo "Hello ${student}"
Shell variable
uppercase by convention
PATH # folder to search for executable
HOME # absolute path to user home directory
USER # name of current user
HOSTNAME # name of the computer
HOSTTYPE # type of processor architecture
PS1 # prompt string 1Parameter expansion trick
${var_name,} # first character to lower case
${var_name,,} # all characters to lower case
${var_name^} # first character to upper case
${var_name^^} # all characters to upper case
${#var_name} # get length of the variable
#
${var_name:offset:length}
${var_name:0:7} # get 7 character starting from the beginning
${var_name:3:0} # get everything to the right starting from inedex 3
${var_name: -3:2} # offset is 3rd from last, and take 2 characters
# ^ space here
${var_name: -3} # offset is 3rd from last, and take everythingTilde Expansion
~ # short cut for $HOME
$PWD
~+ # shortcut for $PWD
$OLDPWD
~- # shortcut for $OLDPWD
cd ~- # switching back and forthBrace expansion
echo {1,2,3,4,5,6} is the same as echo {1..6}
echo month{1..12}
echo month{01..12}
echo {start..end..step}
echo {1..10..2}
var=12
eval echo month{01..$var}