シェルプログラミング 条件
ナビゲーションに移動
検索に移動
| シェルプログラミング |
シェルプログラミング 条件
test ([) コマンド
- 真偽の判定
- ほとんどのシステムでは、test コマンドと [ コマンドは同じもの
- man test
引数に指定されたファイルが存在するか(-f)判定
#!bin/sh if test -f "$1" then echo "$1 found." fi if [ -f "$1" ]; then echo "$1 found." fi
- [ はコマンドなので、条件との間には空白が必要
- ifと同じ行にthenを記述する場合には、; (セミコロン)が必要
- testコマンドが判定できる条件は、文字列比較、算術比較、ファイルの判定
文字列比較
文字列比較 | 結果 |
---|---|
string1 = string2 | 文字列が等しければ真 |
string1 != string2 | 文字列が等しくなければ真 |
文字列がnullでなければ真 | |
文字列がnull(空文字)であれば真 |
算術比較
算術比較 | 結果 |
---|---|
exp1 -eq exp2 | 2つの式が等しければ真 |
exp1 -ne exp2 | 2つの式が等しくなければ真 |
exp1 -gt exp2 | exp1がexp2より大きければ真 > |
exp1 -ge exp2 | exp1がexp2より大きいか、等しければば真 >= |
exp1 -lt exp2 | exp1がexp2より小さければ真 < |
exp1 -le exp2 | exp1がexp2より小さいか、等しければば真 <= |
!exp | 式の真偽を反転 |
ファイルの判定
ファイルの判定 | 結果 |
---|---|
ディレクトリなら真 | |
存在すれば真 | |
通常のファイルなら真 | |
set-group-idビットがセットされていれば真 | |
読み取り可能なら真 | |
サイズが0でなければ真 | |
set-user-idビットがセットされていれば真 | |
書き込み可能なら真 | |
実行可能なら真 |
引数に指定されたファイルの判定
#!/bin/sh if [ -f "$1" ];then echo "file $1 exists." fi if [ -d "$1" ];then echo "$1 is directory." else echo "$1 is not a directory." if [ -r "$1" ];then echo "readable." fi if [ -w "$1" ];then echo "writable." fi if [ -x "$1" ];then echo "executable." fi fi
上記はこの本からの覚書。
非常にわかりやすく説明されている良書
© 2006 矢木浩人