我有以下bash脚本:
#!/bin/sh
num_loops=3
for i in `seq $num_loops`:
do
printf 'Iteration %s\n' $i
done
当我运行它时,我得到以下输出。
$ ./loop-test.sh
Iteration 1
Iteration 2
Iteration 3:
我想知道为什么脚本会在最后一次迭代结束时生成一个无关的冒号(“:”)?我知道变量'i'是一个字符串,但为什么'seq'命令中的最后一次迭代会附加冒号?
答案 0 :(得分:6)
因为你告诉它使用一个:
for i in `seq $num_loops`:
^---
:
不是必需的,它将成为命令行参数的一部分:
for i in 1 2 3:
在最后一次迭代中,基本上是$i = '3:'
。