私には3つの変数があります:
VAR1="file1"
VAR2="file2"
VAR3="file3"
次の&&ようなifステートメントでand()演算子を使用する方法:
if [ -f $VAR1 && -f $VAR2 && -f $VAR3 ]
then ...
fi
このコードを書くとエラーが発生します。正しい方法は何ですか?
私には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文で、いくつかの参照は次のようにそこに与えられ、テストの間の差である[とは何[[?。
&&と、||上の単一のブラケット記法とを-aし、-oあなたが必要な場合は、それが読み厄介とハード取得することができ、特に以来、あなたが最初の表記のためのポータブルコード、外出先を書いている場合は、それ以外の場合は第二と第三のスキップ式をグループ化します。