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 でチェックした条件はこの後で教える方法で使えるよ!その基礎になるからしっかりおさえておこう!