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)
如果你使用Bash的双支架,你可以这样做:
if [[ -f "$input_file" && -f "$output_file" && -f "$log_file" ]]
Run Code Online (Sandbox Code Playgroud)
我发现阅读比这里显示的其他选项更清晰(但这是主观的).但是,它还有其他优点.
并且,正如ghostdog74所示,您应该始终引用包含文件名的变量.
您只能将 [ ... ]运算符视为 的快捷方式test ...。这些选项的使用方式相同。
因此,在您的情况下,您可以编写ghostdog74方式或:
if [ -f $input_file ] && [ -f $output_file ] && [ -f $log_file ]
then
### Some Code here
fi
Run Code Online (Sandbox Code Playgroud)