条件分岐
書式
if 条件式 then 実行文1 else 実行文2 fi
sh-3.2$ if [ -f testscript ] ; then > . ./testscript > else echo "testscript file not exist" > fi testscript file not exist sh-3.2$
case文による条件分岐
case 条件式 in 値1) 実行文1 ;; 値2) 実行文 ;; : : esac
sh-3.2$ function hoge () { case $1 in 1) echo "January" ;; 2) echo "Febrary" ;; 3) echo "March" ;; 4) echo "April" ;; 5) echo "May" ;; 6) echo "June" ;; 7) echo "July" ;; 8) echo "August" ;; 9) echo "September" ;; 10) echo "October" ;; 11) echo "November" ;; 12) echo "December" ;; esac } sh-3.2$ hoge 1 January sh-3.2$ hoge 2 Febrary
for文による繰り返し処理
繰り返し処理です。
for 変数名 in 変数に代入するリスト do 実行文 done
sh-3.2$ for var in Vine SUSE Gentoo > do > echo $var Linux > done Vine Linux SUSE Linux Gentoo Linux
seqコマンドを使うと、連続した数値を自動的に生成できるので、
リストの生成に利用できる。
sh-3.2$ for i in `seq 10 15` > do > echo $i > done 10 11 12 13 14 15 sh-3.2$
whileによる繰り返し
書式
while 条件文 do 実行文 done
for以外の繰り返し処理として、while文が使われることがある。
whileは条件文が満たされている間、do と doneの間の実行文を実行する。実行文は複数行にわたってもいいし、1行でもいい。
sh-3.2$ while [ $i -le 10 ] > do > echo $i > let i=i+1 > done 1 2 3 4 5 6 7 8 9 10 sh-3.2$
出典については…気にするな!