第一个问题
我目前正在使用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 有一些过期,因为大多数Linux发行版都不再支持HAL,所以我想使用 udisks
我如何调整上述命令但使用 udisks 而不是 hal
谢谢!
答案 0 :(得分:1)
回答q1:
>bytes="4110188544/"; echo $(echo "scale=3;${bytes%/*}/1024/1024/1024"|bc)GB
3.827GB
这会删除正斜杠,并使用'bc'将字节转换为GB。修改比例整数以获得准确度