case文
指定された文字列がパターンにマッチするかどうかを判断し、マッチしたパターンに対応する処理を行うための制御構造です。
case文の構造
case 文字列 in
パターン1)
処理1
;;
パターン2)
;;
esac
文字列によって処理を分岐する場合に有効です。
パス名展開が使えます。
「|」を使って複数パターンを1行に書くこともできます。
while文
指定した条件が真である限り繰り返し処理を行う制御構文です。
while文の構文
while [コマンド]
do
繰り返し処理
done
コマンドの終了ステータスがゼロであれば真とみなされ、doからdoneのブロック内に書かれた処理が繰り返し実行されます。
算術式展開「$((計算式))」がwhileとセットでよく使われます。
bashの算術式展開は、読みやすく動作も速いという利点を持っています。
シェル関数
処理をひとまとめにして関数にしておき、繰り返し使えるようにすることを、シェル関数と呼びます。
functionを利用して定義します。
function 関数名 ()
{
処理
}
functionと()のどちらかを省略して書くこともできます。
functionを省略して使われることが多いです。
なおシェル関数を利用する際には、利用する箇所よりも前に定義しておかなければいけません。
位置パラメータ$1,$2…が利用できます。
ただし、シェル関数ではコマンドライン引数ではなく、関数への引数が参照されます。
シェル関数内では、位置パラメータが関数の引数へと置き換えられます。
そのため、位置パラメータではなく特殊パラメータと呼ばれています。
シェル関数も終了ステータスを返します。
シェル関数内で最後に実行されたコマンドの終了ステータスが、そのままシェル関数の終了ステータスとなります。
returnコマンドで終了ステータスを返せます。
シェル関数を終了させる
return 終了ステータス
コメント