シェルスクリプトの条件式や演算子におけるメモ

12月 25, 2009

LinuxやUNIXで書くシェルスクリプト。基本的なこともすぐ忘れてしまうので…、
というかそもそも覚えていないのでここにメモ。
以下、ファイルの判定におけるtestコマンドで使う条件式一覧。

ファイルの条件式

条件を反転させるには「!」マーク。
例えば/var/run/mysql.sockが存在しない場合の処理を定義する。

if [ ! -e /var/run/mysql.sock ]; then
:
:


以下、文字列比較演算子。

文字列比較演算子

比較対象の文字列はダブルクォーテーションで囲んでおかないと動作しない、と思われる。

if [ -n "${VAL}" ] ; then
:
:


if [ ${VAL} = "Hello" ] ; then
:
:


以下、数値比較演算子。

数値比較演算子

以下、関係演算子。

関係演算子

数値の比較には、数値比較演算子ではなく上記の関係演算子を利用することも可能。
その場合は以下のように「(( ))」を使用する。
真の場合には1が、偽の場合は0が返されることに注意する。

$ echo $((3 != 2))
1 ←3は2と等しくないので真

echo $((3 != 3))
0 ←3は3と等しいので偽


補足
上記を応用して計算させることができる。例えば++で、値をひとつ増やす。

$ NUM=10
$ echo $NUM
10
$ ((NUM++))
$ echo $NUM
11


プラスをマイナスに変えれば逆に値をひとつ減らす。
他にもいろいろできるかもしれないが、取り急ぎこれだけ。


Categories: shell