私のマシンのディスク全体の使用量を取得しようとしています。以下は、スクリプトコードです:サブシェル内のグローバル変数への値の追加が機能していません
#!/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
私を助けてもらえますか?ここで何が間違っていますか?
あなたはサブシェルを実行していますが、終了後に変数が失われる傾向があります。 – Inian