if 语句中的多个一元运算符
if 语句中是否可以有多个一元运算符。这是给我错误的代码片段。
请更正此处的代码。
if [ -f $input_file ] -a [ -f $output_file ] -a [ -f $log_file ] ]
then
### Some Code here
fi
Is it possible to have multiple unary operators in if statements.. Here is the code snippet which is giving me error.
Please correct the code here.
if [ -f $input_file ] -a [ -f $output_file ] -a [ -f $log_file ] ]
then
### Some Code here
fi
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
如果您使用 Bash 的双括号,您可以这样做:
我发现它比此处显示的其他选项更容易阅读(但这是主观的)。然而,它还有其他优点。
而且,正如 ghostdog74 所示,您应该始终引用包含文件名的变量。
If you use Bash's double-bracket, you can do this:
which I find cleaner to read than other options shown here (but that's subjective). However, it has other advantages.
And, as ghostdog74 shows, you should always quote variables containing filenames.
您只能将
[ ... ]
运算符视为test ...
的快捷方式。选项的使用方式相同。因此,在您的情况下,您可以编写 ghostdog74 方式或:
You can see the
[ ... ]
operator only as a shortcut fortest ...
. The options are used th same way.So in your case you could either write the ghostdog74 way or :
[
是一个命令,不是if
语句的一部分。因此,您应该向其传递每个适当的参数,而不是像您那样尝试错误地运行它。[
is a command, not part of theif
statement. As such you should pass it each of the appropriate arguments instead of trying to incorrectly run it as you have.