92

3 つの変数があります。

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

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

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

このコードを書くと、エラーが発生します。正しい方法は何ですか?

4

1 に答える 1

187

したがって、式を機能させるには、 &&forを変更する-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 ステートメント内の複数の単項演算子と、テスト、[ と [[ の違いは何ですか? .

于 2013-05-06T09:53:55.663 に答える