シェルスクリプト演算子
シェルスクリプトの比較演算子
数値比較
変数などを数値として比較評価する場合に使用します。
数値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よりタイムスタンプが古ければ真 |