Bash Control Characters

Control characters are codes or numbers in a character set that does not represent a written symbol. They are building blocks of Bash scripts which are like metacharacters having a special meaning. Below are the common separators and Control characters used in Bash scripts.

Control CharactersDescription
|pipe will take the first commands stdout as the second commands stdin.
||OR if first command is false, it will take the second.
|=OR IS (mostly used in if statements)
&&AND if first command is true, it will execute the second one.
!NOT (mostly used in if and test statements), but as a shell-command it opens a shell to run the command (ex. ! echo foo)
!=NOT IS (mostly used in if statements)
!$last commands last argument
!!repeat last command
=IS (mostly used in if statements)
;will separate 2 commands as if they were written on separate command lines
;;end of a case function in a case statement.
$prefix to a variable like “$customVariable”
$!PID of the last child process.
$$PID of the current process (PID is Process ID)
$0Shows program that owns the current process.
$1First argument supplied after the program/function on execution.
$2Second argument supplied after the program/function on execution. ($3 etc.)
$#Shows the number of arguments.
$?Any argument (good to use in if statements)
$-current option flags
$_Last argument/Command
$*All arguments
$@All arguments
#commented line, anything on a line after “#” will be processed by the script
{start braces (starts a function)
}end braces (ends a function)
[start bracket (multiple-argument specifiers)
]end bracket (multiple-argument specifiers)
@$@ is equivalent to “$1” “$2” etc. (all arguments)
*wild card (* can substitute any number of characters)
?wild card (? can substitute any single character)
'precise quote. (Will even include “‘s in the quote)
.dot will read and execute commands from a file, ( . .bashrc )
&and. as suffix to executed file makes it go to the background(./program &)
1>stdout stream director (standard output)
2>stderr stream director (standard error output)
%job character, %1 = fg job 1, %2 = fg job 2, etc.
>>stream director append to a file
<<stdin stream director. (cat > file << EOF ; anything ; EOF)
>stream director that will start at the top of the file (in if statements < and > may be used as greater-then and lesser-then, as: if [ “$1” >= “2” ])
\back-slash, takes away any special meaning with a character
>&stream director to stream director, ie. echo “a” 1>/dev/null 2>&1 this directs 2> to the same place as 1>