Bash
大括號擴展在腳本中不起作用
for i in {1..40} do echo $i done
我有
{1..40}
我想要類似的東西
1 2 3 and so on
所以我可以
i
在命令的參數中使用變數。
在bash 3.0+(以及 zsh 和 ksh93)中,
{1..40}
將擴展到 1-40(含)的數字。在像 dash 這樣的POSIX shell/bin/sh
中(在例如 Ubuntu 中很典型),它不會起作用(我們稱這個問題為“bashism”)。在具有 GNU 實用程序的系統上,您可以使用它
seq
來完成此操作:for i in $(seq 1 40) do echo $i done
為了更便攜,您必須
$i
在while
循環中手動遞增:i=1 while [ $i -le 40 ] do echo $i i=$((i+1)) done
由於缺少外部命令,此攜帶式版本的速度也稍快一些。