首页 > 解决方案 > 如何使用变量作为范围上限

问题描述

我在 bash 脚本中有以下问题。我正在尝试将变量N用作简单范围内的上限,例如

#!/bin/bash

N=10

for n in {1..$N};
do
    echo $n
done;

但是,上面的代码并没有显示循环中的每个数字,而是直接显示{1..10}. 如果我更改$N为它的值,即10,事情会按预期工作。我怎样才能克服这个问题并将变量用作范围的上限?

标签: bashshell

解决方案


你不能这样做,而是这样做:

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

或者 :

n=10
for i in $(seq 0 $n); do
    echo $i
done

推荐阅读