HAL- udisks,人类可读性,在bash脚本中转换为千兆字节



第一个问题

我目前在BASH脚本中使用HAL来获取具有以下命令的特定设备的大小。

HAL_SIZE=$(hal-get-property --udi $UDI --key storage.removable.media_size)

结果(例如): 4110188544/

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

4 110 188 544 bytes = 3.82791138 gigabytes

第二个问题

    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)

任何人都在 udisks 上有一定的到期,因为HAL不会在最多的Linux分布上得到更长的支持,因此我想使用 udisks

我必须如何调整上述命令,但使用 udisks 而不是 hal

谢谢!

Q1的答案:

>bytes="4110188544/"; echo $(echo "scale=3;${bytes%/*}/1024/1024/1024"|bc)GB
3.827GB

这会剥离后期斜线,并使用" BC"将字节转换为GB。修改刻度整数的精度

最新更新