if 〜 then 〜elif
if 〜 then 〜elif 〜文の基本形
if [ 条件式]; then
コマンド1
elif [ 条件式]; then
コマンド2
else
コマンド3
fi
if 文 例
echo input1
read i1
echo input2
read i2
if [ $i1="0" -a $i2="1" ]; then
echo "OK!"
else
echo "NG!"
fi
1)-a and:-o Or
2)「i1=0」且つ「i2=1」ならば、OK。左記以外なら、NG
case 〜in 〜;;〜esac
case文の基本形
case 文字列 in
パターン1)
コマンド1
;;
パターン2)
コマンド2
;;
パターン3)
コマンド3
;;
esac
case 文例
read input1
case $input1 in
y*)
echo "OK"
;;
no|No|NO)
echo "NG"
;;
[a-z][A-Z]*)
echo "Alphabet"
;;
[0-9]*)
echo "Numeric"
;;
esac
1)y:で始まる任意の文字列
2)no|No|NO:no、No、NOの何れか
3)「a-z」「A-Z」:aからz、AからZのいずれかで始まる任意の文字列
4)「0-9」:0から9までのいずれかで始まる任意の文字列
while〜条件〜do〜done
while 例
while 条件
do
コマンド式が真である間繰り返し実行
done
CSVFILE=$1
echo $1
while IFS=, read aa bb cc;
do
aa_arr+=($aa)
bb_arr+=($bb)
cc_arr+=($cc)
done <$1
arr_max=`expr ${#aa_arr[*]}`
i=0
while [ $i -lt $arr_max ]
do
echo ${aa_arr[$i]},${bb_arr[$i]},${cc_arr[i]}
i=`expr $i + 1`
done
1)CSVファイルの内容を読み込み配列に格納する。
2)配列の最大値を「arr_max」に格納する。
3)配列の最大値まで繰り返し処理を実行する。
数字比較演算子
| 演算子 | 意味 |
| -eq | 等しい |
| -ne | 等しくない |
| -lt | より小さい |
| -le | 以下 |
| -gt | より大きい |
| -ge | 以上 |
until
until文
cnt=0
until [ $cnt -eq 10 ]
do
cnt=`expr ${cnt} + 1`
echo $cnt
done
1)カウントが10になるまでの間繰り返す。