【发布时间】:2016-11-25 09:29:38
【问题描述】:
我正在尝试获取我的机器的总磁盘使用量。下面是脚本代码:
#!/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))
do 和 done 之间的 totalUsage 回显显示正确的值,
但是当我在调用diskUse 后尝试回显它时,它仍然会打印0
你能帮帮我吗,这里出了什么问题?
【问题讨论】:
-
你正在运行一个子shell,变量在退出后往往会丢失