| ページ一覧 | ブログ | twitter |  書式 | 書式(表) |

MyMemoWiki

シェルプログラミング 条件

提供: MyMemoWiki
ナビゲーションに移動 検索に移動

| シェルプログラミング |

シェルプログラミング 条件

test ([) コマンド

  • 真偽の判定
  • ほとんどのシステムでは、test コマンドと [ コマンドは同じもの
  • man test

引数に指定されたファイルが存在するか(-f)判定

#!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 文字列が等しくなければ真
文字列がnullでなければ真
文字列が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 式の真偽を反転
ファイルの判定
ファイルの判定 結果
ディレクトリなら真
存在すれば真
通常のファイルなら真
set-group-idビットがセットされていれば真
読み取り可能なら真
サイズが0でなければ真
set-user-idビットがセットされていれば真
書き込み可能なら真
実行可能なら真

引数に指定されたファイルの判定

#!/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

上記はこの本からの覚書。

非常にわかりやすく説明されている良書