bash - 如何使用变量作为范围上限
问题描述
我在 bash 脚本中有以下问题。我正在尝试将变量N
用作简单范围内的上限,例如
#!/bin/bash
N=10
for n in {1..$N};
do
echo $n
done;
但是,上面的代码并没有显示循环中的每个数字,而是直接显示{1..10}
. 如果我更改$N
为它的值,即10
,事情会按预期工作。我怎样才能克服这个问题并将变量用作范围的上限?
解决方案
你不能这样做,而是这样做:
n=10
for ((i=0; i<=n; i++)); do
echo $i
done
或者 :
n=10
for i in $(seq 0 $n); do
echo $i
done
推荐阅读
- reactjs - 如何使用 mobx-react-lite 使子组件对 mobx 中的状态变化做出反应
- java - Java:错误:在调用超类型构造函数之前无法引用 this
- ansible - Ansible:在虚拟环境中的目标主机上运行模块
- cypress - 赛普拉斯上传文件给出错误无法在“窗口”上执行“atob”
- powerbi - Power BI - 将字段名称合并为一个
- sql - SQL Contains() 未返回“The”的结果
- r - R - 更改图例标签
- scala - 如何使用 Scala 2.11.8 在 Spark REPL 中启用部分统一?
- sql - 语法错误:GROUP BY 子句不能包含聚合或窗口函数
- typescript - 确保接口的类型 T 是实现它的类