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

本文最后更新时间 2023-02-13
文章链接地址:
https://me.jinchuang.org/archives/1191.html
本站文章除注明[转载|引用|原文]出处外,均为本站原生内容,转载前请注明出处


留言