我有一个计算给定分区中使用的磁盘空间百分比bash脚本:
df -k $devname | grep -v ^File | awk '{printf ("%i",$3*100 / $2); }
它在一个分区长的名字,因为名字推动其他列到下一行,我怎么解决这个问题不行?
df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/mapper/VolGroup60-ROOT
2865493440 2222006740 497927968 82% /
tmpfs 30913808 0 30913808 0% /dev/shm
/dev/sda1 495844 103347 366897 22% /boot
该-P
为(便携)选项df
使用的输出格式符合POSIX和保持一切都在一行。 您还可以简化awk
使用部分sel
。
取而代之的是,分析整个“表”的,你可以直接输出使用百分比使用--output
参数(见man 1 df
了解详细信息):
$ df -k --output=pcent /dev/sda1
Use%
13%
这应该是一个更容易过滤。
通过创建与阵列例如readarray
在击4:
$ readarray -t -s 1 percentage < <(df -k --output=pcent /dev/sda1)
$ echo "${percentage[0]// /}"
13%
分配的输出df
由线阵列行:
$ percentage=($(df -k --output=pcent /dev/sda1))
$ echo "${percentage[1]}"
13%