首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >人类可读的HAL - UDISKS在bash脚本中将字节转换为千兆字节。

人类可读的HAL - UDISKS在bash脚本中将字节转换为千兆字节。
EN

Stack Overflow用户
提问于 2012-11-06 11:08:03
回答 1查看 2K关注 0票数 0

第一个问题

我目前正在使用bash脚本中的HAL来获得特定设备的大小,并使用以下命令。

代码语言:javascript
复制
HAL_SIZE=$(hal-get-property --udi $UDI --key storage.removable.media_size)

结果(例如):4110188544/

但是,如何将此值转换为人类可读的格式,如GB:

代码语言:javascript
复制
4 110 188 544 bytes = 3.82791138 gigabytes

第二个问题

代码语言:javascript
复制
    for UDI in $(hal-find-by-property --key storage.bus --string usb)
do
    HAL_TMP=`hal-get-property --udi $UDI --key storage.removable.media_available`
    if [ "$HAL_TMP" = "true" ]; then
        HAL_DEV=$(hal-get-property --udi $UDI --key block.device)
        HAL_SIZE=$(hal-get-property --udi $UDI --key storage.removable.media_size)
        HAL_TYPE=$(hal-get-property --udi $UDI --key storage.drive_type)

是否有人对udisk有一些兴趣,因为在大多数linux发行版中,HAL将不再受支持,所以我考虑使用udisk。

我如何调整上述命令,但使用udisk而不是hal?

谢谢!

EN

回答 1

Stack Overflow用户

发布于 2012-11-06 15:21:07

对q1的回答:

代码语言:javascript
复制
>bytes="4110188544/"; echo $(echo "scale=3;${bytes%/*}/1024/1024/1024"|bc)GB
3.827GB

这将剥离尾随的正斜杠,并使用'bc‘将字节转换为GB。修改标度整数以提高精度

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13249698

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档