testコマンド 論理演算子 AND OR NOT

AND

n1=10; n2=7
if [ "$n1" -gt 5 -a "$n2" -gt 5 ]; then echo OK; fi

OR

n1=5; n2=10
if [ "$n1" -gt 7 -o "$n2" -gt 7 ]; then echo OK; fi

複雑な組み合わせ

n1=1; n2=10; n3=10
if [ \( "$n1" -gt 5 -a "$n2" -gt 5 \) -o "$n3" -gt 5 ]; then echo OK; fi

複雑な条件式の場合、複合コマンド[[]]を利用するのが無難。上のような通常のテストコマンドではn1が未定義などの場合、エラーが発生するので。

NOT

if [ ! -f /tmp/1.txt -a ! -f /tmp/2.txt ]; then
  echo "no 1.txt, no 2.txt"
fi

参考


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS

Last-modified: 2017-01-09 (月) 03:49:09 (554d)