スポンサーリンク
if 文などで条件式を評価する場合には test コマンドを使用する。
下記、sample_test.shファイルを見てください。
#!/bin/sh
if test 6 -eq $1; then
echo あなたは $1 歳です。
fi
コマンドで[./sample_test.sh 6]を打ったら、「あなたは6歳です。」とプリントアウト。
上記は①「数値の比較」の一例です。
※数値比較は実際の開発でよく使われているので、test コマンドの数値比較条件一覧表を暗記してください。
②文字列の比較例:
test 文字列1 != 文字列2
③ファイルの比較
test ファイル1 -nt ファイル2
④その他の評価条件
test -f file
#file が普通のファイルならば真となる。
⑤略式 test コマンド
$ [ "A" = "A" ]; echo $?
#→ testコマンドは略式の [] を使用して記述することができる。
⑥AND 条件と OR 条件
test 1 = 1 -a 1 -eq 1 -o 1 -eq 100 ; echo $?
#AND部分:1=1 and 1 equal 1は真
#OR部分:1 -eq 100はfalseとなる。
#全体: (and部) true OR (or部) falseの結果は真なので、「真 (終了ステータスが 0)と出力する。
そのたの事例:[http://shellscript.sunone.me/if_and_test.html#test-コマンド]へ参考下さい。
備考:
①test コマンドの数値比較条件一覧表
オプション 使用例 数式で表す
-eq test num1 -eq num2 num1=num2
-ne test num1 -ne num2 num1≠num2
-lt test num1 -lt num2 num1<num2
-le test num1 -le num2 num1≦num2
-gt test num1 -gt num2 num1>num2
-ge test num1 -ge num2 num1≧num2
②ファイルの比較
-nt は「ファイル1 is newer than ファイル2」を意味し、
-ot は「ファイル1 is older than ファイル2」を意味する。
③その他の評価条件(オプション)
オプション 使用例 オプションの意味
-z test -z string string の文字列長が 0 ならば真となる。
-n test -n string string の文字列長が 0 より大ならば真となる。
-d test -d file file がディレクトリならば真となる。
-f test -f file file が普通のファイルならば真となる。
-s test -s file file が 0 より大きいサイズならば真となる。
-e test -e file file が存在するならば真となる。
-r test -r file file が読み取り可能ならば真となる。
-w test -w file file が書き込み可能ならば真となる。
-x test -x file file が実行可能ならば真となる。
④AND OR条件
-a は「AND(かつ)」を意味し、前後の条件式が両方成り立つ場合のみ「真」となる。
-o は「OR(または)」を意味し、前後の条件式のどちから一方でも成り立てば「真」となる。
⑤コマンドの終了ステータスに関して
何もせずに終了ステータスが「0」で終わるコマンドの true と
何もせずに終了ステータスが「1」で終わるコマンドの false
以上、シェルtestのメモでした。
次は、
シェルcaseの実例です。
0人
◎技術三昧掲示板で掲載した情報(リンク・リンク先を含む)に関して、掲示板管理者が確認や保証を行うことは一切ありません。
すべて利用者のモラルに委ねられおり、掲示板から張られたリンクに関するトラブルが生じても管理者側は免責とさせていただきます。
閉じる