bash - 使用 Seq 和变量遍历列表
问题描述
我正在尝试遍历一个整数列表,如下所示:
start=000
for i in $(seq -w $start 48 006);
但是,当我尝试上面的这段代码时,循环似乎循环一次然后退出。
我需要修改什么?(前导零需要保留)
解决方案
请您尝试以下操作。
start=0
diff=6
for i in $(seq $start $diff 48);
do
printf '%03d\n' $i
done
输出如下。
000
006
012
018
024
030
036
042
048
OP 尝试过的代码中的问题:
我相信您在其中给出了错误的语法,然后应该seq
是eg-->()。由于您错误地给出了它们,因此它只在循环中打印一次。startpoint
increment_number
endpoint
seq(start_point increment end_point)
在您的尝试中,它以 0 为起点,并且应该运行到 6,相差 48,这是不可能的,因此它只打印第一个整数值,这很公平。
编辑:根据@Cyrus 先生的评论,在此处添加 BASH 内置解决方案而不使用seq
.
for ((i=0; i<=48; i=i+6)); do printf '%03d\n' $i; done
推荐阅读
- firebase - FlutterFirebaseCorePlugin.java 使用或覆盖已弃用的 API
- java - MapStruct 转换错误不兼容类型:无法转换为
- survival-analysis - 精算与预测生存比较
- html - A4 尺寸的 HTML div 大于 A4
- html - 如果添加 {{ end }},则 html 文件将无法工作
- sqlite - 在 Flutter 中导入现有的 Sqlite 数据库
- database - 无法将 Firebase 库添加到 Apps 脚本
- angular - 如何仅在移动 Angular 上显示汉堡菜单?
- cplex - 如何在 Cplex 脚本(流控制)中向现有模型添加新约束?
- dart - 将窗口函数应用于 Dart 流