我目前正在苦苦讨论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
变量的初始值,但为什么地球上的内置[[
并不评估括号内的内容?
我的语法错了吗?
提前感谢您的回复。
答案 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