Bash C循环形式比传统形式的好处`
我接下来的教程介绍了传统Shell形式的Bash C循环形式比传统形式的好处`,bash,Bash,我接下来的教程介绍了传统Shell形式的和的以及:C from的 $ for num in {1..3}; do echo "test"; done test test test 此外,bash的最新版本还添加了for命令语法的第二种形式,类似于C编程语言中的形式 $ for (( num=0; num<3; num=num+1 ));do echo "test"; done test test test 我没有学C, 与
和的以及:C from的
$ for num in {1..3}; do echo "test"; done
test
test
test
此外,bash的最新版本还添加了for命令语法的第二种形式,类似于C编程语言中的形式
$ for (( num=0; num<3; num=num+1 ));do echo "test"; done
test
test
test
我没有学C,
与bash脚本中的传统表单
相比,C表单
有什么好处?C表单的一个优点是:可以有效地在范围定义中使用变量。在传统形式中,您无法有效地执行此操作。(我将“高效”定义为“不需要子外壳”。)考虑:
begin=13
end=17
for (( num=$begin; $num < $end; num=$num+1 )); do
echo $num
done
# invalid syntax, sadly
for num in {$begin..$end}; do echo $num; done
# instead have to use a sub-shell, not as efficient
for num in $(seq $begin $end); do
echo $num
done
begin=13
结束=17
对于((num=$begin;$num<$end;num=$num+1));做
echo$num
完成
#遗憾的是,语法无效
对于{$begin..$end}中的num;执行echo$num;完成
#取而代之的是使用一个子外壳,效率不高
对于$中的num(seq$begin$end);做
echo$num
完成
如果您对“最近的”的定义接近20年前,那么是的,C风格的for循环是最近的。(它来自ksh88(与1988年一样))
begin=13
end=17
for (( num=$begin; $num < $end; num=$num+1 )); do
echo $num
done
# invalid syntax, sadly
for num in {$begin..$end}; do echo $num; done
# instead have to use a sub-shell, not as efficient
for num in $(seq $begin $end); do
echo $num
done