请问Shell编程中怎样固定输出位数?(前面补0)

失落的凡凡 2010-11-28 07:30:49
没有找到Shell编程区,不知道发在这里合不合适,如果有更合适的版还请提醒一下,谢谢!

这是我的代码

no=001
while [ "$no" -le "100" ]
do
echo "$no";
no=`expr &no + 1`;
done


运行时输出效果是这样的

001
2
3
4
5
6

99
100

请问怎样才能让它这样输出呢?

001
002
003

099
100


谢谢大家了
...全文
7886 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
失落的凡凡 2010-11-28
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 steptodream 的回复:]

我实际上并不是需要打印出来,而是要创建一批带编号的文件夹,那样应该怎么做呢?
------------
你把结果printf的结果保存到变量里不就行了啊!!!!
var=$(printf "%03d" "$no")
[/Quote]

谢谢主席。Shell初学,啥都不会呢
Linux-Torvalds 2010-11-28
  • 打赏
  • 举报
回复
awk '{for(i=1;i<=100;i++) printf "%03d\n",i}'
steptodream 2010-11-28
  • 打赏
  • 举报
回复
我实际上并不是需要打印出来,而是要创建一批带编号的文件夹,那样应该怎么做呢?
------------
你把结果printf的结果保存到变量里不就行了啊!!!!
var=$(printf "%03d" "$no")
失落的凡凡 2010-11-28
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 steptodream 的回复:]

用printf来格式化输出即可
printf "%03d" "$no";

提醒一下 你贴出的代码是错误的!
[/Quote]

谢谢主席……我正编辑贴子,然后就提示有人回复了……

我实际上并不是需要打印出来,而是要创建一批带编号的文件夹,那样应该怎么做呢?
steptodream 2010-11-28
  • 打赏
  • 举报
回复
自己去了解一下shell里的printf的各种详细用法
steptodream 2010-11-28
  • 打赏
  • 举报
回复
用printf来格式化输出即可
printf "%03d" "$no";

提醒一下 你贴出的代码是错误的!

23,110

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧