linux bash 脚本-如何检查变量是否已改变?

linux bash 脚本-如何检查变量是否已改变?

我编写了一个小型 bash 脚本,用于检查可用的最新稳定 Nextcloud 服务器版本并通知我

我希望脚本仅当服务器版本号改变时才使用“notify-send”命令通知我。

我的简单脚本:

#!/bin/bash

# The latest stable version of Nextcloud server in a variable

LatestStableVersion=$(curl -s https://nextcloud.com/install/ | grep 'Latest stable version:' |  awk '{print $18}')


# Notify latest stable version of Nextcloud server

notify-send -u critical -t 12000 "Nextcloud" "New version available : $LatestStableVersion"

我只希望在“$LatestStableVersion”变量中的服务器版本号发生变化时收到通知。我想使用“while”循环。

您知道如何做到这一点吗?

谢谢

答案1

我测试了一个新想法并且我的 bash 脚本成功运行:

1 – 我在变量中获取了 Nextcloud 服务器的最新稳定版本

2 – 我将个人服务器上当前运行的版本存储在单独的文本文件中

3 – 脚本将最新版本与当前版本进行比较,如果它们不相同则通知我,并将当前版本更改为新版本(在文本文件中)。

cron 任务每分钟执行一次脚本。

我知道这很复杂,但它确实有效。

#!/bin/bash

# Get the latest stable version of Nextcloud server in a variable

LatestStableVersion=$(curl -s https://nextcloud.com/install/ | grep 'Latest stable version:' | awk '{print $18}')

# Source CurrentVersion text file

source /home/user/Scripts/nextcloud/CurrentVersion


# Notify if new version available

if [ "$CurrentVersion" != "$LatestStableVersion" ]
then
    eval "export $(egrep -z DBUS_SESSION_BUS_ADDRESS /proc/$(pgrep -u $LOGNAME gnome-session)/environ)"; 
    DISPLAY=:0 notify-send -u critical -t 0 "Nextcloud" "New version available : $LatestStableVersion"
    
    echo -e "CurrentVersion=$LatestStableVersion" > /home/user/Scripts/nextcloud/CurrentVersion
fi

谢谢

相关内容