| & |
Run the previous command in the background |
ls & |
| && |
Logical AND |
if [ “$foo” -ge “0” ] && [ “$foo” -le “9”] |
| x|| |
Logical OR |
if [ “$foo” -lt “0” ] || [ “$foo” -gt “9” ] |
| ^ |
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 $*” |
| -eq |
Numeric Equality |
if [ “$foo” -eq “9” ] |
| -ne |
Numeric Inquality |
if [ “$foo” -ne “9” ] |
| -lt |
Less Than |
if [ “$foo” -lt “9” ] |
| -le |
Less Than or Equal |
if [ “$foo” -le “9” ] |
| -gt |
Greater Than |
if [ “$foo” -gt “9” ] |
| -ge |
Greater Than or Equal |
if [ “$foo” -ge “9” ] |
| -z |
String is zero length |
if [ -z “$foo” ] |
| -n |
String is not zero length |
if [ -n “$foo” ] |
| -nt |
Newer Than |
if [ “$file1” -nt “$file2” ] |
| -d |
Is a Directory |
if [ -d /bin ] |
| -f |
Is a File |
if [ -f /bin/ls ] |
| -r |
Is a readable file |
if [ -r /bin/ls ] |
| -w |
Is a writable file |
if [ -w /bin/ls ] |
| -x |
Is an executable file |
if [ -x /bin/ls ] |
| (…) |
Function definition |
function myfunc() { echo hello } |