« ちょいわざ | メイン | set コマンド »
2005年07月29日
if 比較演算 (シェル
Bashの条件式
ファイルの存在
-a file fileが存在すればtrue
-b file fileが存在し,それがブロックのスペシャルファイルだったらtrue
-c file fileが存在し,それがキャラクタのスペシャルファイルだったらtrue
-d file fileが存在し,それがディレクトリだったらtrue
-e file fileが存在すればtrue
-f file fileが存在し,それが通常のファイルだったらtrue
-g file fileが存在し,そのset-group-idビットがセットされていたらtrue
-k file fileが存在し,そのstickyビットがセットされていたらtrue
-p file fileが存在し,それがnamed pipeだったらtrue
-r file fileが存在し,それが読み込み可能ならtrue
-s file fileが存在し,そのサイズが0より大きかったらtrue
-t fd ファイルディスクリプタfdがオープンされており,それが端末を参照していたらtrue
-u file fileが存在し,そのset-user-idビットがセットされていたらtrue
-w file fileが存在し,それが書き込み可能ならtrue
-x file fileが存在し,それが実行可能ならtrue
-O file fileが存在し,それが実行中のユーザが所有するものだったらtrue
-G file fileが存在し,それが実行中のユーザグループが所有するものだったらtrue
-L file fileが存在し,それがシンボリックリンクならtrue
-S file fileが存在し,それがSocketならtrue
-N file fileが存在し,それが最後に読み込んだ後更新されていたらtrue
ファイル
file1 -nt file2 file1の更新日時がfile2より新しかったらtrue
file1 -ot file2 file1の更新日時がfile2より古かったらtrue
file1 -ef file2 file1とfile2が同じ装置でi-nodeも同じならtrue
シェルオプション
-o optname optnameのシェルオプションが有効ならtrue
文字列などの比較
-z string stringの長さが0ならtrue
-n string stringの長さが0じゃなければtrue
string
string1 == string2 string1とstring2が等しければtrue
string1 != string2 string1とstring2が等しくなければtrue
string1 < string2 ソート順に並べたときにstring1がstring2より前に位置すればtrue
string1 > string2 ソート順に並べたときにstring1がstring2より後に位置すればtrue
arg1 OP arg2 arg1とarg2は数値。OPは'-eq','-ne','-lt','-le','-gt','-ge'のうちのどれか。
OPはそれぞれ,=,!=,<,<=,>,>=を表す。
演算子
+ 単項演算子としてのプラス
- 単項演算子としてのマイナス
! 論理否定
~ ビット演算の否定
** 階乗
* 乗算
/ 除算
% 剰余
+ 加算
- 減算
<< 左シフト(ビット演算)
>> 右シフト(ビット演算)
<= 小または等しい
>= 大または等しい
< 小さい
> 大きい
== 等しい
!= 等しくない
& ビット演算のAND
^ ビット演算のExclusive OR
| ビット演算のOR
&& 論理演算のAND
|| 論理演算のOR
expr ? expr : expr
= 代入
*= 右項を乗算した結果を代入
/= 右項で除算した結果を代入
%= 右項で剰余演算の結果を代入
+= 右項を加算した結果を代入
-= 右項を減算した結果を代入
<<= 右項でシフト演算した結果を代入
>>= 右項でシフト演算した結果を代入
&= 右項でビット演算した結果を代入
^= 右項でビット演算した結果を代入
|= 右項でビット演算した結果を代入
投稿者 muuming : 2005年07月29日 18:27