-2
我写了一个小脚本来检查更新。 我在寻找它的输出1 3的答案:Bash脚本在Updates语句中返回正确的值
- 如果没有更新,返回“您的系统是最新的”
- 如果只有一个更新缴费,返回“有1个更新可用”
- 如果有多个更新,返回‘有$ NUMOFUPDATES更新可用’
这是我到目前为止有:
#!/bin/bash
# Check for Updates
# Variables
NUMOFUPDATES=$(LANG=C apt-get upgrade -s |grep -P '^\d+ upgraded'|cut -d" " -f1)
UPDATEY1="There is 1 Update available"
UPDATEY2="There are $NUMOFUPDATES Updates available"
UPDATEN="Your system is up to date"
if [ $NUMOFUPDATES -gt 0 ]; then
echo "\${color3}"$UPDATEY2 # Number of updates available
elif [ $NUMOFUPDATES -eq 1 ]; then
echo "\${color3}"$UPDATEY1 # Number of updates available
else
echo "\${color2}"$UPDATEN # System is up to date
fi
exit 0
什么也没有做,正显示出如果只有1次更新,它不返回“有1个更新可用”它返回“有$ NUMOFUPDATES更新可用”
我觉得我接近解决方案。有人能帮我找到解决办法吗?
谢谢。
'$ NUMOFUPDATES -gt 0'为1更新为真,1大于0.所以第一个if被执行。 –
1当然是'-gt 0',所以'elif'永远不会发生。投票结束如同微不足道。 – tripleee
你为什么不使用'case $ NUMOFUPDATES'? – Barmar