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
Bash for-条件中的变量_Bash_Variables_For Loop - Fatal编程技术网

Bash for-条件中的变量

Bash for-条件中的变量,bash,variables,for-loop,Bash,Variables,For Loop,此代码 #!/bin/bash cond=10; for i in {1..$cond} do echo hello; done …简直让我发疯。这只打印一个“hello”,如i中有{1..10} #!/bin/bash cond=10; for i in {1..10} do echo hello; done 打印所需的10倍hello。如何将变量放入条件中?我尝试了不同的方法,但没有一种有效。不过这是一件多么容易的事啊。。提前感谢您。这将有效: cond=10;

此代码

#!/bin/bash

cond=10;

for i in {1..$cond}
do
    echo hello;
done
…简直让我发疯。这只打印一个“hello”,如
i
中有
{1..10}

#!/bin/bash

cond=10;

for i in {1..10}
do
    echo hello;
done
打印所需的10倍hello。如何将变量放入条件中?我尝试了不同的方法,但没有一种有效。不过这是一件多么容易的事啊。。提前感谢您。

这将有效:

cond=10;

for ((i=0;i<=$cond;i++));
do
    echo hello;
done
cond=10;

对于((i=0;i除了已经回答的经典循环外,您还可以使用一些魔法:

#!/bin/bash

cond=10

for i in $(eval "echo {1..$cond}")
do
    echo hello
done

但是,当然更难阅读。

大括号扩展不适用于变量。您可以使用类似于
$(seq“$cond”)的内容
相反。很好的解决方案,Jonathan的更通用,但我没有想到这一个。Thx我是一个多么愚蠢的人。我已经看到了很多为
编写
的方法,但不知何故我错过了最重要的一个。谢谢。(只是一个提示,我从1开始为
编写
,不是0-不要混淆任何人)只需补充一点,在
for
条件中,没有必要说
$cond
cond
本身也可以正常工作。