如何迭代变量?

时间:2017-07-06 13:45:22

标签: bash

我在当前的脚本中使用了以下内容

for x in {07..10}

尝试使用

将开始,结束变量传递给脚本
for x in $(seq $1 $2)

由于序列从07开始,而07是我想要读取的文件名,因此无法将变量更改为7,因为在使用序列时会发生这种情况。能不能指出我正确的方向,因为我对bash没有多少经验。

1 个答案:

答案 0 :(得分:0)

使用printf获取所需的数字格式:

for (( x=7; x<=10; x++ )); do
   str=$( printf "%02d" "$x" )
   echo filename${str}.txt
done

结果如下:

$ for (( x=7; x<=10; x++ )); do str=$( printf "%02d" "$x" ); echo filename${str}.txt; done
filename07.txt
filename08.txt
filename09.txt
filename10.txt

也适用于变量:

$ start="07"
$ end="10"
$ for (( x=$start; x<=$end; x++ )); do str=$( printf "%02d" "$x" ); echo filename${str}.txt; done
filename07.txt
filename08.txt
filename09.txt
filename10.txt