我需要使用带有2位数字变量的for循环来定义循环的开始和结束值,例如:lstart = 00和lend = 99。 这将用于为数字字符串(如“ 56784XX”)打印100个数字序列,其中XX的末尾将从lstart值(即00)开始,并以lend值(即99)结束。 因此,输出应类似于:
5678400
5678401
5678402
5678403
.
.
.
.
5678499
for循环如下:
for (( i = $lstart; i <= $lend; i++ )); do echo "56784${i}"; done
将显示前10个值,例如:
567841
567842
567843
.
.
.
567849
即缺少0位数,这是我不希望的。 另外,这不起作用:
for i in {$lstart..$lend}; do echo "56784${i}"; done
可以请您帮忙吗?
谢谢。
答案 0 :(得分:2)
使用printf
代替echo
:
for i in 1 2 3; do
printf "56784%02d\n" $i
done
给予:
5678401
5678402
5678403
注意::尽管echo
默认以换行符\n
终止,而printf
则没有,因此您必须自己指定。