crontabで実行するスクリプトを作成しようとしています。更新が利用可能な場合、スクリプトは通知を送信します。スクリプト自体はエラーを表示しませんが、ifステートメントでは「else」部分のみが機能します。何かアイデアはありますか?
#!/bin/bash
sudo apt update > ~/Desktop/UpdateInfo
update1=$(grep "package can be upgraded" ~/Desktop/UpdateInfo | cut -d' ' -f2,3,4,5)
var1="package can be upgraded."
if [ var1 = update1 ]
then
notify-send "Updates are available"
else
notify-send "test"
fi
承認された回答:
文字列var1
を比較しています 文字列update1
に 。それらは決して同じではありません。代わりに変数を比較したい:
if [ "$var1" = "$update1" ]
もちろん、全体を次のように簡略化することもできます。
sudo apt update | grep -q "package can be upgraded" && notify-send "Updates are available"