Bash

如何在 for 循環中替換 AND (&&)?

  • December 22, 2017

我想找到一個等價的

cmd 1 && cmd 2 && ... && cmd 20

但是在for循環中表達的命令

for i in {1..20}
do
  cmd $i
done

您建議對第二個表達式進行什麼更改以找到第一個表達式的等價物?

與您的原始序列等效的是:

for i in {1..20}
do
  cmd $i || break
done

與 Amit 的回答不同的是腳本不會退出,即會執行可能遵循序列/循環的潛在命令。請注意,根據我的建議,整個循環的返回狀態將始終為真,如果與您的情況相關,這可能會被修復。

如果您想要一個骯髒的單行解決方案,您可以創建一個命令並將其發送到 bash。

echo "cmd "{1..20}" &&" : | bash

引用自:https://unix.stackexchange.com/questions/318266