- 追加された行はこのように表示されます。
- 削除された行は
このように表示されます。
!!!シェルプログラミング 条件
!!test ([) コマンド
[シェルプログラミング]
*真偽の判定
*ほとんどのシステムでは、test コマンドと [ コマンドは同じもの
'''引数に指定されたファイルが存在するか判定'''
#!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,文字列が等しくなければ真
,-n string,文字列がnullでなければ真
,-z string,文字列が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,式の真偽を反転
::ファイルの判定
,ファイルの判定,結果
,-d file,ディレクトリなら真
,-e file,存在すれば真
,-f file,通常のファイルなら真
,-g file,set-group-idビットがセットされていれば真
,-r file,読み取り可能なら真
,-s file,サイズが0でなければ真
,-u file,set-user-idビットがセットされていれば真
,-w file,書き込み可能なら真
,-x file,実行可能なら真
'''引数に指定されたファイルの判定'''
#!/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
----
上記はこの本からの覚書。
非常にわかりやすく説明されている良書
{{amazon 4797327014}}
----
{{amazon 4797327014}}