用于for循环数语法上限的bash变量
如果我像这样创建一个bash循环,使用文字数字,则所有操作都会按预期进行:用于for循环数语法上限的bash变量,bash,variables,for-loop,Bash,Variables,For Loop,如果我像这样创建一个bash循环,使用文字数字,则所有操作都会按预期进行: #!/bin/bash for i in {1..10}; do echo $i done 输出为: 1 2 3 4 5 6 7 8 9 10 但是,如果我想在变量中使用上限,我似乎无法正确使用它。以下是我的四次尝试: #!/bin/bash n=10 for i in {1..$n}; do echo $i done for i in {1.."$n"}; do echo $i done
#!/bin/bash
for i in {1..10}; do
echo $i
done
输出为:
1
2
3
4
5
6
7
8
9
10
但是,如果我想在变量中使用上限,我似乎无法正确使用它。以下是我的四次尝试:
#!/bin/bash
n=10
for i in {1..$n}; do
echo $i
done
for i in {1.."$n"}; do
echo $i
done
for i in {1..${n}}; do
echo $i
done
for i in {1.."${n}"}; do
echo $i
done
现在输出为:
{1..10}
{1..10}
{1..10}
{1..10}
不是我想要的…:(
要澄清这个问题:
如何使用变量作为bash for循环中范围语法的限制?不要使用
{…}
;使用C样式for循环
for ((i=1; i <= $n; i++)); do
for((i=1;i不要使用{…}
;使用C样式for循环
for ((i=1; i <= $n; i++)); do
for((i=1;我感谢chepner。这解决了我的问题,并提供了一点关于预期此行为的背景。感谢chepner。这解决了我的问题,并提供了一点关于预期此行为的背景。