Bash嵌套if语句有几个条件

时间:2013-05-17 07:33:07

标签: bash if-statement nested

我目前正在苦苦讨论Bash中的嵌套if语句。 这是我目前正在尝试做的事情:

if [[ `echo "$command" | cut -d "_" -f 2` == "CAPTURE" ]]; then
    if [[ "$status_general" != "Capturing" && "$status_capture" != "Running" ]]; then
        if [[ `echo "$command" | cut -d "_" -f 3-` == "" ]]; then
            *Further instructions here...*

我已经检查了所有内容,从if语句正确关闭到甚至尝试使用其他几个表达式,但是在运行我的脚本并输入第二个if语句(带有2个表达式来检查)时,Bash输出:

line 198: [[ Idle : command not found

“空闲”实际上是$status_general变量的初始值,但为什么地球上的内置[[并不评估括号内的内容? 我的语法错了吗?

提前感谢您的回复。

2 个答案:

答案 0 :(得分:1)

你的一个空间(特别是那个一个)实际上并不是一个空间。擦除并重新键入。

答案 1 :(得分:0)

不回答你的问题,只是风格问题。而不是做

echo "$command" | cut -d "_" -f 2
echo "$command" | cut -d "_" -f 3-

您可以在一个命令中捕获这些字段:

IFS=_  read -r first second third <<< "$command"

然后

if [[ $second == "CAPTURE" && $third == "" ]]; then