0

我目前正在努力处理 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变量的初始值,但是为什么内置的测试[[不评估括号内的内容呢?我的语法错了吗?

提前感谢您的回复。

4

2 回答 2

2

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

于 2013-05-17T07:53:19.727 回答
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
于 2013-05-17T20:18:50.153 回答