我正在尝试获取我的计算机的总磁盘使用情况。下面是脚本代码:在子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