92

我有三个变量:

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 statement 中的多个一元运算符以及那里给出的一些参考,例如What is the difference between test, [ and [[ ? .

于 2013-05-06T09:53:55.663 回答