by shigemk2

当面は技術的なことしか書かない

制御構造

条件分岐

書式

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$ 

出典については…気にするな!