# To implement a for loop: for file in *; do echo $file found; done # To implement a case command: case "$1" in 0) echo "zero found";; 1) echo "one found";; 2) echo "two found";; 3*) echo "something beginning with 3 found";; esac # Turn on debugging: set -x # Turn off debugging: set +x # Retrieve N-th piped command exit status printf 'foo' | fgrep 'foo' | sed 's/foo/bar/' echo ${PIPESTATUS[0]} # replace 0 with N # Lock file: ( set -o noclobber; echo > my.lock ) || echo 'Failed to create lock file' # Fork bomb :(){ :|:& };: # Unix Roulette # (Courtesy of Bigown's answer in the joke thread) # DANGER! Don't execute! [ $[ $RANDOM % 6 ] == 0 ] && rm -rf /* || echo Click #Roulette # for loop in one line for i in $(seq 1 4); do echo $i; done # Test if a program exists in the path command -v 2>&1 >/dev/null || error " not installed" # Redirection my_command 2>&1 > command-stdout-stderr.txt my_command 2>&1 > /dev/null