トップ 一覧 ping 検索 ヘルプ RSS ログイン

シェルプログラミング 条件の変更点

  • 追加された行はこのように表示されます。
  • 削除された行はこのように表示されます。
!!!シェルプログラミング 条件

!!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}}