Проблема команды notify-send в сценарии оболочки
У меня есть текстовый файл b.txt со следующим текстом:
notify-send -i gtk-info "Как дела" -h строка:x-canonical-private-synchronous: все
У меня есть сценарий оболочки со следующим кодом:
#!/bin/sh
while true;
do if [ -s b.txt ]
then
value="$(cat b.txt)"
exec $value
sleep 0.1
fi
done
Когда я запускаю скрипт, он выдает следующую ошибку и уведомление не отображается:
Неверное количество опций.
Но когда текстовый файл содержит команду с двумя словами:
notify-send -i gtk-info "Hows You" -h строка:x-canonical-private-synchronous: все
уведомление отображается отлично.
Эта проблема возникает только тогда, когда я выполняю уведомление-отправку через сценарий оболочки. Как отобразить уведомление с сообщением, содержащим любое количество слов?
2 ответа
exec
это совершенно не то, что использовать здесь. Может быть попробовать
#!/bin/sh
while true;
do
if [ -s ./b.txt ]
then
. ./b.txt
sleep 0.1
fi
done
Но выполнение этого в узком цикле кажется странной вещью, которую нужно сделать, и выполнение файла неизвестного происхождения в лучшем случае сомнительно. Вы уверены, что этот текстовый файл всегда будет содержать именно то содержимое, которое вы ожидаете, и не может быть изменен никем? Почему эта команда помещается в отдельный файл?