Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/371.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将开始变量传递给for循环,BASH_Bash_Variables_For Loop - Fatal编程技术网

如何将开始变量传递给for循环,BASH

如何将开始变量传递给for循环,BASH,bash,variables,for-loop,Bash,Variables,For Loop,你好 我想知道如何正确地将变量传递给for循环。语法不重要,我只想传递变量并按2计数 问题是: 当我写下: r=0 ; for i in {"$r"..10..2}; do echo "Welcome $i times" ;done 我得到: Welcome {0..10..2} times 而不是: Welcome 0 times Welcome 2 times Welcome 4 times Welcome 6 times Welcome 8 times Welcome 10 times

你好

我想知道如何正确地将变量传递给
for
循环。语法不重要,我只想传递变量并按2计数

问题是:

当我写下:

r=0 ; for i in {"$r"..10..2}; do echo "Welcome $i times" ;done
我得到:

Welcome {0..10..2} times
而不是:

Welcome 0 times
Welcome 2 times
Welcome 4 times
Welcome 6 times
Welcome 8 times
Welcome 10 times

提前感谢您提供的任何线索

您不能在
{a..b}
语法中使用变量。但是您可以使用
seq


请参见您不能在
{a..b}
语法中使用变量。但是您可以使用
seq


参见

使用变量作为循环边界的循环的一般格式为:

#!/bin/bash
a=2
b=10
increment=2

for ((i=$a; i<=$b; i+=$increment)); do
    ## <something with $i>
    echo "i: $i"
done

使用变量作为循环边界的
for
循环的一般格式为:

#!/bin/bash
a=2
b=10
increment=2

for ((i=$a; i<=$b; i+=$increment)); do
    ## <something with $i>
    echo "i: $i"
done

为了完整起见

代替

for i in {"$r"..10..2};
你可以试试

for i in $(eval echo {$r..10..2});

但是,我强烈建议您使用此解决方案,但请选择David的解决方案。

为了完整性

代替

for i in {"$r"..10..2};
你可以试试

for i in $(eval echo {$r..10..2});

但是,我强烈建议您使用此解决方案,但请选择David的解决方案。

mmm。。。是的,这是可能的:这取决于bash版本,我的意思是不能在大括号内使用变量。即使是那个文档也没有使用它。有关bash的最新信息,您应该看到@Alejandro
大括号扩展是在任何其他扩展之前执行的,并且其他扩展的任何特殊字符都会保留在结果中。这是严格的文本。Bash不会对扩展的上下文或大括号之间的文本应用任何语法解释。
也不会真正依赖您的链接作为指导,因为其中有一些解释很少的相当糟糕的示例,例如
while true;do…
是比((;;))的
更可读的无限循环;做…
。我不知道,非常感谢你启发我(:mmm…是的,这是可能的:这取决于bash版本请参见,我的意思是不能在大括号内使用变量。即使是该文档也没有使用它。有关bash的最新信息,您应该看到@Alejandro
大括号扩展是在任何其他扩展之前执行的,其他扩展的任何特殊字符都保留在结果。它是严格的文本。Bash不会对扩展的上下文或大括号之间的文本应用任何语法解释。
也不会真正依赖您的链接作为指导,因为其中有一些非常糟糕的示例,解释很少,例如,
while true;do…
是一个更具可读性的示例无限循环比(;);做…。我不知道,非常感谢你启发我(:谢谢你,…最后一个问题,我怎么能数到二?谢谢你,…最后一个问题,我怎么能数到二?非常感谢你的完整答案,祝你愉快!:)非常感谢你的完整答案,祝你愉快!:)可能的重复可能的重复