web-dev-qa-db-ja.com

ifステートメントで&&演算子を使用する

3つの変数があります。

VAR1="file1"
VAR2="file2"
VAR3="file3"

次のようなifステートメントでand(&&)演算子を使用する方法:

if [ -f $VAR1 && -f $VAR2 && -f $VAR3 ]
   then ...
fi

このコードを書くとエラーになります。正しい方法は何ですか?

69

したがって、式を機能させるには、&&-aに変更するとうまくいきます。

このように正しいです:

 if [ -f $VAR1 ] && [ -f $VAR2 ] && [ -f $VAR3 ]
 then  ....

または好き

 if [[ -f $VAR1 && -f $VAR2 && -f $VAR3 ]]
 then  ....

あるいは

 if [ -f $VAR1 -a -f $VAR2 -a -f $VAR3 ]
 then  ....

この質問でさらに詳細を見つけることができます bash:ifステートメントの複数の単項演算子 およびそこに与えられたいくつかの参照 test、[と[[? の違いは何ですか?.

144
fedorqui