From mywiki.wooledge.org

This page shows common errors that Bash programmers make. The following examples are all flawed in some way:

???Contents
for i in `ls *.mp3`
cp $file $target
Filenames with leading dashes
[ $foo = “bar” ] cd `dirname “$f”`
[ “$foo” = bar && “$bar” = foo ] [[ $foo > 7 ]] grep foo bar | while read line; do ((count++)); done
if [grep foo myfile] if [bar=”$foo”] if [ [ a = b ] && [ c = d ] ] cat file | sed s/foo/bar/ > file
echo $foo
$foo=bar
foo = bar
echo < read more here…