我有三个变量:
VAR1="file1"
VAR2="file2"
VAR3="file3"
如何&&
在 if 语句中使用 and () 运算符,如下所示:
if [ -f $VAR1 && -f $VAR2 && -f $VAR3 ]
then ...
fi
当我编写此代码时,它会出错。什么是正确的方法?
我有三个变量:
VAR1="file1"
VAR2="file2"
VAR3="file3"
如何&&
在 if 语句中使用 and () 运算符,如下所示:
if [ -f $VAR1 && -f $VAR2 && -f $VAR3 ]
then ...
fi
当我编写此代码时,它会出错。什么是正确的方法?
所以为了让你的表达有效,改变&&
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 [[ ? .