Command | Description | Example | |
& | Run the previous command in the background | ls & | |
&& | Logical AND | if [ “$foo” -ge “0” ] && [ “$foo” -le “9”] | |
|| | Logical OR | if [ “$foo” -lt “0” ] || [ “$foo” -gt “9” ] (not in Bourne shell) | |
^ | Start of line | grep ”^foo” | |
$ | End of line | grep “foo$” |
= | String equality (cf. -eq) | if [ “$foo” = “bar” ] | |
! | Logical NOT | if [ “$foo” != “bar” ] | |
$$ | PID of current shell | echo “my PID = $$” | |
$! | PID of last background command | ls & echo “PID of ls = $!” | |
$? | exit status of last command | ls ; echo “ls returned code $?” | |
$0 | Name of current command (as called) | echo “I am $0” | |
$1 | Name of current command's first parameter | echo “My first argument is $1” | |
$9 | Name of current command's ninth parameter | echo “My ninth argument is $9” | |
$@ | All of current command's parameters (preserving whitespace and quoting) | echo “My arguments are $@” | |
$* | All of current command's parameters (not preserving whitespace and quoting) | echo “My arguments are $*” | |
parenthesis: ( … ) | Function definition | function myfunc() { echo hello } | |
-b | block special file | if [ -b filename ] | |
-c | Special character file | if [ -c filename ] | |
-d | Is a Directory | if [ -d /bin ] | |
-e | Is file exist | if [ -e /bin/ls ] | |
-eq | Numeric Equality | if [ “$foo” -eq “9” ] | |
-f | Is a File | if [ -f /bin/ls ] | |
-G | check if file exists and is owned by effective groupid | if [ -G /bin/ls ] | |
-g | true if file exists and is set-group-id | if [ -g /bin/ls ] | |
-ge | Greater Than or Equal | if [ “$foo” -ge “9” ] | |
-gt | Greater Than | if [ “$foo” -gt “9” ] | |
-k | check sticky bit | if [ -k /bin/ls ] | |
-L | if file a symbolic link | if [ -L /etc/alternatives/editor ] | |
-le | Less Than or Equal | if [ “$foo” -le “9” ] | |
-lt | Less Than | if [ “$foo” -lt “9” ] | |
-n | String is not zero length | if [ -n “$foo” ] | |
-ne | Not Equal | if [ “$foo” -ne “9” ] | |
-nt | Newer Than | if [ “$file1” -nt “$file2” ] | |
-O | True if file exists and is owned by the effective user id | if [ -O file ] | |
-r | Is a readable file | if [ -r /bin/ls ] | |
-s | if file is nonzero size | if [ -s /bin/ls ] | |
-S | if file is a socket | if [ -S file ] | |
-u | check if file set-user-id bit is set | if [ -u /bin/ls ] | |
-w | Is a writable file | if [ -w /bin/ls ] | |
-x | Is an executable file | if [ -x /bin/ls ] | |
-z | String is zero length | if [ -z “$foo” ] | |