今天发现了一个shell问题,break在脚本里面会失效,比如下面这个脚本:
#!/bin/bash
while : ;do
ewch 1 &>/dev/null||(echo 2 && break)
echo 3 && break
done
这个的执行结果是先打印2 和3 然后再break,我不确定是不是我的逻辑有问题,求各位大大指点下
答案由酷!学园 dark 大神提供:
這個我會 ... 我知道 ...
小括號是 "子程序"
大括號才延續當前程序
另外 ..
你將這幾行打在指令列 , 執行後再用方向鍵 "上" 叫出來看
while : ;do ewch 1 &>/dev/null||(echo 2 && break); echo 3 && break; done
小括號裡猶如一個指令一般
while : ;do ewch 1 &>/dev/null||{ echo 2 && break; }; echo 3 && break; done
前大括號後面要空格 , 後大括號前要分號斷行
时间: 2024-10-05 04:22:43