2022







2022






鸿

靳闯博客 记录是一种习惯 、分享是一种态度
  • 波浪
  • 波浪
  • 波浪
  • 波浪
shell下bc命令处理和数值的四舍五入
发表于: | 分类: 技术积累 | 标签: Linux Shell

bc命令是linux下的计算器,四舍五入用到printf命令

(接我上篇文章添查询在线文件大小查询)在执行脚本时bc处理出现了错误:(standard_in) 1: illegal character: ^M

# 脚本内容(curl获取文件大小,然后进行换算保留2位小数)
fileLength=`curl -sI $down_url|grep Content-Length|awk '{print $2}'`
filesize=`echo "scale=2;$fileLength/1000^3"|bc`;
echo "文件大小为:[${filesize}]G"

bcr.png

网上查错误原因是因为执行返回的结果带有回车符"\r"(使用sh -x调试可以看到),shell中 test[] 和 bc 均无法进行处理,故而报错。

# 解决(结果中的回车符再处理下)
fileLength=`curl -sI $down_url|grep Content-Length|awk '{print $2}'|tr -d tr -d $'\r'`

bcr1.png

linux下在对文件统计大小(以GB)显示的时候都会对文件大小整数显示,在这个脚本的结果中也加上四舍五入以整数显示

# 0f表示不保留小数
echo "文件大小为:[`printf "%.0f" ${filesize}`]G"

prtf.png


本站文章除注明转载/出处外,均为本站原生内容,转载前请注明出处 | 文章链接地址:https://me.jinchuang.org/archives/1191.html

如果这篇文章帮助到了你,我感到十分荣幸!

记录 🐾 分享 👣 进步 💪 变强


📬 评论留言

顶部