【发布时间】:2021-04-13 20:56:01
【问题描述】:
我通过 bash 脚本编写了一个简单的代码,
代码 1
for((i=1;i<=10;i++))
do
echo $i
i=$((i+1))
echo $i
i=$((i+2))
done
代码 1 的输出
1
2
5
6
9
10
代码 2
for i in {1..10}
do
echo $i
i=$((i+1))
echo $i
i=$((i+2))
done
代码 2 的输出
1
2
2
3
3
4
4
5
5
6
6
7
7
8
8
9
9
10
10
11
我只是想知道,为什么输出不一样?
提前谢谢
【问题讨论】:
-
顺便说一句,
{1..10}并不特定于 for 循环——例如,您可以使用echo {1..10},或者执行类似mv {1..10} numbered_files/的操作。只有(( INIT; CHECK; INCR ))方法是for特定的语法,详细记录在wiki.bash-hackers.org/syntax/ccmd/c_for