私には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
あなたが必要な場合は、それが読み厄介とハード取得することができ、特に以来、あなたが最初の表記のためのポータブルコード、外出先を書いている場合は、それ以外の場合は第二と第三のスキップ式をグループ化します。