Назад | Перейти на главную страницу

сценарий 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. Я полагаю, с циклом «пока».

У тебя есть идеи, как это сделать?

Спасибо

Я проверил новую идею, и мой сценарий 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

Спасибо