bash:if语句中的多个一元运算符

Kir*_*ran 8 syntax bash if-statement unary-operator

是否有可能在if语句中有多个一元运算符..这是给我错误的代码片段.

请在此处更正代码.

if [ -f $input_file ] -a [ -f $output_file ] -a [ -f $log_file ] ]
then
    ### Some Code here
fi
Run Code Online (Sandbox Code Playgroud)

谢谢Kiran

gho*_*g74 10

if [ -f "file1" -a -f "file2" -a "file3" ]; then
   #some code
fi
Run Code Online (Sandbox Code Playgroud)


Pau*_*ce. 7

如果你使用Bash的双支架,你可以这样做:

if [[ -f "$input_file" && -f "$output_file" && -f "$log_file" ]]
Run Code Online (Sandbox Code Playgroud)

我发现阅读比这里显示的其他选项更清晰(但这是主观的).但是,它还有其他优点.

并且,正如ghostdog74所示,您应该始终引用包含文件名的变量.


gre*_*eth 5

您只能将 [ ... ]运算符视为 的快捷方式test ...。这些选项的使用方式相同。

因此,在您的情况下,您可以编写ghostdog74方式或:

if [ -f $input_file ] && [ -f $output_file ] && [ -f $log_file ]
then
### Some Code here
fi
Run Code Online (Sandbox Code Playgroud)