gpt4 book ai didi

unix - if 语句 bash 中的多个和 ors

转载 作者:行者123 更新时间:2023-12-05 01:31:19 25 4
gpt4 key购买 nike

嗨,我正在做一些事情,我需要创建一个 if 语句,它将在 '&&' 和 '||' 中使用多个变量组合 。现在我正在尝试这个简单的任务,但我收到错误“找不到命令”。我想先&&比||两个计数它带有我在代码中设置的标志。以下是我正在尝试的代码

if [[$pcount -eq 0 ] && [$ucount -eq 0]] ||  [test $flag -eq 1]
then
do my stuff
else
exit 1
fi

先感谢您。

最佳答案

你不能嵌套 [ ... ]因为 [是一个 shell 命令,而不是一个单独的语法结构。在 Bash 中,您可以使用 [[ ... ]]支持嵌套的句法结构,可移植 sh您可以使用 ( ... )括号优先:

if ([ $pcount -eq 0 ] && [ $ucount -eq 0 ]) ||  [ $flag -eq 1 ]

补充说明:
  • [test condition]没有意义,因为 [运算符已经是 test 的别名.写信 [ condition ]test condition .
  • [ 前留一个空格和测试,否则 sh无法识别 [作为命令名称。 [是一个与任何其他命令一样的命令,与特殊的解析规则无关。
  • 关于unix - if 语句 bash 中的多个和 ors,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13375619/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com