Lから始まるLinux

2章51話
終了ステータス
2章52話 testコマンド
もくじ
2章53話
AND演算子とOR演算子
test コマンド
若木 みどり
終了ステータスの使い方って気になるなぁ
若木 しげる
今回は終了ステータスと 密接な関わりを持つ test を学ぼう!
使い方
若木 しげる
test は指定した条件を調べて 結果を終了ステータスで返すよ
test [オプション]...
若木 しげる
-d オプションは「ディレクトリが存在しているか」をチェックするよ
若木 しげる
以下のコマンドを実行してみよう
test -d /home/midori
若木 みどり
実行したけど何も表示されないね
若木 しげる
結果は画面出力ではなく終了ステータスで返されているんだ終了ステータスを確認してみよう!
echo $?
若木 みどり
終了ステータスは? 変数に格納されるんだよね!
0
若木 みどり
0 が表示されたよ!ということは成功だね!これで/home/midori ディレクトリが存在している」ことがわかるんだ!
若木 しげる
そういうことだね!test は条件が満たされていれば 0そうでなければ 1 を返すよ
若木 しげる
今度は -f オプションを使ってみようこれは「通常ファイルが存在しているか」チェックするオプションだよ同じように以下を実行してみよう
test -f /home/midori
若木 みどり
実行したよ!
echo $?
若木 みどり
結果は終了ステータスで返って来ているんだよね!
1
若木 みどり
今度は 1 が表示された!/home/midori はディレクトリだから通常のファイルじゃないってことだね
若木 しげる
そういうことだねtest はこうやって条件を調べるのに使われるんだ
[ コマンド
若木 しげる
testよく使われるコマンドなんだそのため簡単に使える別名[ が用意されているよ
若木 みどり(驚き)
コマンドに別名があるの?それは初耳!
若木 しげる
さっきの test -d /home/midori[ を使って書き換えてみよう
若木 しげる
ただし [ を使う場合は最後を ] で閉じるというルールがあるんだだからこのように書くよ
[ -d /home/midori ]
若木 みどり
なんだか「ひとまとまりの条件」というのがわかりやすいね!
若木 しげる
じゃあ終了ステータスを確認してみようか
echo $?
若木 みどり
test[同じものだから結果は 0 だと思うなぁ
0
若木 みどり(笑顔)
ちゃんと test同じ結果だね!
若木 しげる
たいていの場面でtest よりも[ が使われるよこの書き方に慣れておこう!
オプション
若木 しげる
test でよく使う指定をまとめたよ!
コマンド説明
[ -d PATH ]パス PATH がディレクトリであれば成功
[ -f PATH ]パス PATH が通常ファイルであれば成功
[ -e PATH ]パス PATH が存在していれば成功
[ X -eq Y ]数値 XY が等しければ成功
[ X -ne Y ]数値 XY が異なれば成功
[ X -gt Y ]数値 XY より大きければ成功
[ X -ge Y ]数値 XY より大きいか等しければ成功
[ X -lt Y ]数値 XY より小さければ成功
[ X -le Y ]数値 XY より小さいか等しければ成功
[ -n TEXT ]文字列 TEXT の長さが1以上なら成功
[ -z TEXT ]文字列 TEXT の長さが0なら成功
[ TEXT1 == TEXT2 ]文字列 TEXT1TEXT2 が等しければ成功
[ TEXT1 != TEXT2 ]文字列 TEXT1TEXT2 が異なれば成功
[ ! 条件 ]条件 が失敗なら成功
[ 条件1 -a 条件2 ]条件1条件2 が両方成功なら成功
[ 条件1 -o 条件2 ]条件1条件2 のどちらかが成功なら成功
若木 みどり(驚き)
うわぁ!いっぱいある!
若木 しげる
本当はもっとあるけど必要になったら少しづつ覚えればいいよ
まとめ
若木 みどり
今回は testその別名 [ を覚えたよ!色々な条件を判定して終了ステータスで結果を教えてくれるんだ!
若木 しげる
test でチェックした条件はこの後で教える方法で使えるよ!その基礎になるからしっかりおさえておこう!