Bash脚本在Updates语句上返回正确的值

时间:2016-09-18 05:28:00

标签: linux bash ubuntu updates

我写了一个小脚本来检查更新。 我正在寻找输出3个答案之一:

  1. 如果没有更新,请返回"您的系统是最新的"
  2. 如果只有一个更新可用,请返回"有1个可用更新"
  3. 如果有多个更新,请返回"有$ NUMOFUPDATES个可用更新"
  4. 这是我到目前为止所做的:

    #!/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更新可用"

    我觉得我接近解决方案。有人可以帮我找到解决方案吗?

    谢谢。

1 个答案:

答案 0 :(得分:1)

1大于0.将if语句更改为if [ $NUMOFUPDATES -gt 1 ]; then