2017-06-20 80 views
0

我在編寫監視硬盤上的操作數量的程序。來自linux命令的處理結果

#!/bin/bash 

while true; 
do 
    operations=$(iostat -dx /dev/mapper/kaliMichu--vg-home) 
    echo "$operations" 
    sleep 5 
done 

所以我用iostat。 其實我只對一些參數感興趣,例如w/s。 我如何能趕上它的值到變量e.g WS = $ W/s_value

+1

嘗試運行= $(iostat -dx/dev/mapper/kaliMichu -vg-home | awk'NR> 3 {print $ 5}')'其中'5'是'w的結果列號/ s'。 –

+1

這就是我一直在尋找的!奇蹟般有效。如果你發佈這個答案,我會接受它 – Michu93

回答

2
#!/bin/bash 

while true; 
do 
    operations=$(iostat -dx /dev/mapper/kaliMichu--vg-home|awk 'NR>3{print $5}') 
    echo "$operations" 
    sleep 5 
done 

這裏,awk是filterning所需的列給你的。

+0

如果我強烈地想要得到兩個參數怎麼辦?可以一次調用iostat並使用不同值創建兩個變量? – Michu93

+0

可以使用eval或declare命令。然而,對兩個不同的列運行命令是明智的。 –

+0

爲什麼它是明智的? – Michu93