![Bash 的 for 循环范围为 {#..#}](https://linux22.com/image/821362/Bash%20%E7%9A%84%20for%20%E5%BE%AA%E7%8E%AF%E8%8C%83%E5%9B%B4%E4%B8%BA%20%7B%23..%23%7D.png)
{#..#} 生成数字或字符序列,类似于 Python 中的 range()。如果我echo {1..5}
在命令行中执行该命令,则会出现:
1 2 3 4 5
相反,以下 bash 脚本无法按预期工作。
for i in {1..3};
do
echo "Iteration $i"
done
将打印:
Iteration {1..3}
为什么?
*我可以使用seq
,但我读到它已经过时了(http://www.cyberciti.biz/faq/bash-for-loop/)
答案1
我已经尝试过你的代码(复制粘贴到终端),它产生的结果与你发布的结果不同:
for i in {1..3};
do
echo "Iteration $i"
done
#---OUTPUT BELOW---
Iteration 1
Iteration 2
Iteration 3
我使用 Linux Mint 12 Lisa(源自 Ubuntu)和 bash 版本4.2.10(1)-发布