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

发布于 2024-08-22 01:37:36 字数 180 浏览 9 评论 0原文

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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

疾风者 2024-08-29 01:37:36
if [ -f "file1" -a -f "file2" -a "file3" ]; then
   #some code
fi
if [ -f "file1" -a -f "file2" -a "file3" ]; then
   #some code
fi
心不设防 2024-08-29 01:37:36

如果您使用 Bash 的双括号,您可以这样做:

if [[ -f "$input_file" && -f "$output_file" && -f "$log_file" ]]

我发现它比此处显示的其他选项更容易阅读(但这是主观的)。然而,它还有其他优点

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

If you use Bash's double-bracket, you can do this:

if [[ -f "$input_file" && -f "$output_file" && -f "$log_file" ]]

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.

不及他 2024-08-29 01:37:36

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

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

if [ -f $input_file ] && [ -f $output_file ] && [ -f $log_file ]
then
### Some Code here
fi

You can see the [ ... ] operator only as a shortcut for test .... The options are used th same way.

So in your case you could either write the ghostdog74 way or :

if [ -f $input_file ] && [ -f $output_file ] && [ -f $log_file ]
then
### Some Code here
fi
依 靠 2024-08-29 01:37:36

[ 是一个命令,不是 if 语句的一部分。因此,您应该向其传递每个适当的参数,而不是像您那样尝试错误地运行它。

if [ arg1 arg2 arg3 arg4 ... ]
then

[ is a command, not part of the if statement. As such you should pass it each of the appropriate arguments instead of trying to incorrectly run it as you have.

if [ arg1 arg2 arg3 arg4 ... ]
then
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文