我有三个变量:
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
当我编写此代码时,它给出了错误。正确的方法是什么?
Answers:
因此,要使您的表情有效,更改即可&&
解决问题-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语句中的多个Unary运算符以及此处给出的某些引用,例如test,[和[[之间的区别是什么?。
&&
和||
跟单括号来了-a
和-o
,因此,如果你正在编写可移植代码去的第一个符号,否则第二和跳过第三,特别是因为它可以得到的尴尬和艰难,如果你需要阅读对表达式进行分组。