制御構文
 if
  if 終了コード
	then     
    cmd		      # 条件文(処理)の結果 == 0 の処理
  elif 終了コード
    cmd		      # 条件文(処理)の結果 != 0 の処理
  else
    cmd
  fi
		条件によって処理を分岐したいときは test コマンドを使う。
		test は式が真ならば終了コードの 0, 偽ならば 1 を返す。
		v=1
		if test $v = 1 
		then
			echo "true"
		fi
	if  test  -f  ~/.emacs
	then
			echo "true"
	fi
		test の省略形として [] を使うこともできる。
		ただし [] 内の前後は スペースを空ける必要がある。
		if [ -f ~/.emacs ]
		then
			echo "true"
		fi
		
		変数の値と比較するときは空がきた場合の対策で
		"" をつけておく
	  if [ = "aaa" ] と解釈されて構文エラーになる。
		if [ "$1" == "a" ]
		then
			echo "true"
		fi
	POINT
		if [ ]; then
		if [ nandemo ]; then
  WARNING 
      BAD if 0; then         ## ERR, invalid cmd      
      OK  if test.sh; then   ## 
      exit 0
    条件文はひとつの式なので [ ; then ] と記述
    すべてに TOKEN にスペースを空ける
		空の 式 はできない.
	 BAD
		 if 条件文; then fi
	 BAD
	   if [ "$1"="str" ];
	 OK
	   if [ "$1" = "str" ];	
 OR.AND
	if [ -f a.txt -a -f b.txt ]
	if [ -f a.txt -o -f b.txt ]
	i=10
	j=1
	if [ $i == 10 -a $j == 7 ]; then
			echo "true"
	else
			echo "false"
	fi
 for
  SYNTAX
    for $v in list
    do
      ...
    done
		スペース区切りの文字列 list 内の要素を変数 v に代入しながら繰り返す
		list="a b c"
    for $v in list
    do
      echo $v
    done
		
		シェルのファイル展開と併用する。
		for v in *.txt
		do
				echo $v
		done
		引数をイテレートする
		for v in $*; do
				echo $v
		done
		コマンドの結果をイテレートする
		for v in `find -iname "*.txt"`; do
				echo $v
		done
		
		for v in `grep "TODO" ~/.emacs`; do
				echo $v
		done
 while
  SYNTAX
		while 条件文
		do
			...
		done
		list=$PATH
		while test -n "$list"
		do
			echo ${list%%:*}
			list=${list#*:}
			if [ "$list" == "${list#*:}" ]; then
					break;
			fi 
		done
		
		while read i
		do
			echo $i
		done < /dust/foo.txt
		while read i
		do
			echo $i
		done
		
 case
	SYNTAX	
		case 文字列 in
				 条件1)    処理1 ;;
				 条件2)    処理2 ;;
				 条件3)    処理3 ;;
		esac	
	DESC
		文字列一致した条件の処理をする。
		v=a
		case $v in
				a)
				echo "a"		;;
				b)
				echo "b"		;;
				*)
				echo "default"
		esac
		条件の文字列には シェルのワイルドカードが使える。
		"*" は任意の文字列なのでデフォルトとして機能する。
		v=a
		case $v in
				*.txt)
				echo "txt"		;;
				*.exe)
				echo "exe"		;;
				*)
				echo "default"
		esac
		case $USER in
				root)
				echo "root user"		;;
				*)
				echo "default"
		esac
		
		while getopts a:bc var
		do
		case $var in
			a)
				echo a
				;;     # break
			b)
				echo b
				;;     
			*)			# Default
				echo etc
		esac