シェルスクリプト演算子
シェルスクリプトの比較演算子
数値比較
変数などを数値として比較評価する場合に使用します。
| 数値1 -gt 数値2 | 数値1が数値2より大きい場合に真 |
| 数値1 -lt 数値2 | 数値1が数値2より小さい場合に真 |
| 数値1 -ge 数値2 | 数値1が数値2より大きいか等しい場合に真 |
| 数値1 -le 数値2 | 数値1が数値2より小さいか等しい場合に真 |
| 数値1 -eq 数値2 | 数値1と数値2が等しい場合に真 |
| 数値1 -ne 数値2 | 数値1と数値2が等しくない場合に真 |
文字列比較
変数などを文字列として比較評価する場合に使用します。
| 文字列 | 文字列の長さが0より大きければ真 |
| -n 文字列 | 文字列の長さが0より大きければ真 |
| ! 文字列 | 文字列の長さが0であれば真 |
| -z 文字列 | 文字列の長さが0であれば真 |
| 文字列1 = 文字列2 | 2つの文字列が等しければ真 |
| 文字列1 != 文字列2 | 2つの文字列が等しくなければ真 |
論理結合
複数の条件を結合(AND,OR)して評価する場合に使用します。
| ! 条件 | 条件が偽であれば真 |
| 条件1 -a 条件2 | 条件1が真、かつ、条件2が真であれば真 |
| 条件1 -o 条件2 | 条件1が真、または、条件2が真であれば真 |
シェルスクリプトの四則演算
シェルスクリプトで数値演算を行う場合は、「expr」コマンドを使用します。
シェルスクリプトでは、「VAR=1+1」と記述しても変数には「"1+1"」という文字列が格納されることになります。
「expr」コマンドで使用できる算術演算子は以下のとおりです。
| a + b | aとbの和 |
| a - b | aとbの差 |
| a \* b | aとbの積 |
| a / b | aとbの商 |
| a % b | aとbの剰余 |
- 乗算の演算子はエスケープ文字を使用して「\*」と記述します。
- UNIXにおいて「*」はワイルドカードという特別な意味があります。
- 演算子の前後のスペースは省略できませんので注意してください。
実行例
#!/bin/sh
var1=`expr 1 + 1`
var2=`expr 2 - 1`
var3=`expr $var1 \* $var2`
ファイル演算子
ファイルの存在、形式、パーミッションなどで評価する場合に使用します。
testコマンドを利用することと同等の処理を行います。
| -d ファイル名 | ディレクトリなら真 |
| -f ファイル名 | 通常ファイルなら真 |
| -L ファイル名 | シンボリックリンクなら真 |
| -s ファイル名 | サイズが0より大きければ真 |
| -r ファイル名 | 読み取り可能ファイルなら真 |
| -w ファイル名 | 書き込み可能ファイルなら真 |
| -x ファイル名 | 実行可能ファイルなら真 |
| ファイル1 -nt ファイル2 | ファイル1がファイル2よりタイムスタンプが新しければ真 |
| ファイル1 -ot ファイル2 | ファイル1がファイル2よりタイムスタンプが古ければ真 |