在bash中为循环定义范围不起作用

背风处

我在bash中有以下for循环,该循环在chrooted目录中创建循环设备。

for var in 0 1 2 3 .. 7
do
    MAKEDEV -d ${CHROOT}/dev -x loop$var
done

这对我不起作用,因为它在创建loop3之后实际上需要..并尝试创建loop ..并失败。但是根据本教程,它应该可以正常工作。我通过执行以下操作使其工作:

for (( var=0; var<=7; var++ ))
do
    MAKEDEV -d ${CHROOT}/dev -x loop$var
done

我仍然想知道为什么我第一次尝试的for循环不起作用。请帮忙。

数字创伤

我想您是从字面上阅读本教程的。turorial确实

for VARIABLE in 1 2 3 4 5 .. N

但是从字面上看,这不是正确的bash语法-我认为作者只是想说,对于这种for循环,您需要明确列出要迭代的所有值。因此,在您的情况下,这将是:

for var in 0 1 2 3 4 5 6 7

本教程还提到了括号扩展,@ glennjackman在回答中给出了完全正确的语法。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章