シェルのif文でAND条件を複数指定したい

10月 23, 2011

シェルのif文でAND条件を指定するには以下のように”-a”を付与する。(OR条件なら-o)

if [ -e /tmp/some.file -a -e /tmp/some2.file ]; then
:
:


この条件を3つ以上指定したい時はどうするか?単純に上記に追加するだけでよい、みたいなことも書かれているが、自分やってみたら動作しなかった。他の要因があるのかもしれないが。。で、ちょっと発想を変えて、以下のやり方でもOK、ってことを発見。

if [ -e /tmp/some.file ] && [ -e /tmp/some2.file ] && [ -e /tmp/some3.file ]; then
:
:


上記の場合、条件は「これら3つのファイルが全て存在したら」となる。
「どれかひとつでも存在したら」としたかったら”||”でOR条件にする。


Categories: shell