У вас есть ошибки в коде:
#!/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
Вам нужно использовать $
для расширения ваших переменных.
При использовании теста [
вам обязательно нужно заключать свои переменные в кавычки. Технически это не нужно в тесте [[
, но вы все равно должны процитировать.
Я предполагаю, что это способ, которым вы создали newuser
, назначив ему /bin/true
оболочку, указав -s /bin/true
.
Из справочной страницы useradd
:
https://linux.die.net/man/8/useradd
-s, --shell SHELL
The name of the user's login shell. The default is to leave this field blank, which causes the system to select the default login shell specified by the SHELL variable in /etc/default/useradd, or an empty string by default.
Поскольку вы установили его на /bin/true
, статус выхода будет 0
и, следовательно, не будет выдано никакого сообщения об ошибке. Установка такой оболочки характерна только для пользователей, которым нельзя разрешать вход в систему. Обычно используется /bin/false
, так как это приведет к сообщению об ошибке, аналогичному cannot create shell
, которое, по крайней мере, дает представление о том, что не удается.
Это можно решить с помощью usermod -s /bin/bash newuser
.