我正在嘗試獲取我的計算機的總磁盤使用情況。下面是腳本代碼:在子shell中向全局變量添加值不起作用
#!/bin/sh
totalUsage=0
diskUse(){
df -H | grep -vE '^Filesystem|cdrom' | awk '{ print $5 " " $1 }' | while read output;
do
diskUsage=$(echo $output | awk '{ print $1}' | cut -d'%' -f1 )
totalUsage=$((totalUsage+diskUsage))
done
}
diskUse
echo $totalUsage
雖然totalUsage
是一個全局變量,我曾試圖單獨的磁盤使用情況和爲totalUsage
在該行:
totalUsage=$((totalUsage+diskUsage))
的totalUsage
do
之間的回聲和done
顯示正確的值, 但當我嘗試在呼叫diskUse
後回顯它時,它仍然打印0
你能幫我嗎,這裏有什麼不對?
您正在運行一個子shell,變量在其退出後傾向於丟失 – Inian