3つの変数があります。
VAR1="file1"
VAR2="file2"
VAR3="file3"
次のようなifステートメントでand(&&
)演算子を使用する方法:
if [ -f $VAR1 && -f $VAR2 && -f $VAR3 ]
then ...
fi
このコードを書くとエラーになります。正しい方法は何ですか?
したがって、式を機能させるには、&&
を-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、[と[[? の違いは何ですか?.