Я хочу использовать notify-osd
показать настольные уведомления. Значение, данное как входной параметр, должно также быть отображено.
Сценарий:
param="parameter $1"
echo "${param}"
echo 'notify-send "param no value"' | at now
echo 'notify-send "${param}" "param with value"' | at now
Проблема: первое уведомление отображается правильно. Но использование уведомления ${param}
никогда не показывается. Почему?
(at now
будет позже, конечно, заменен запланированным временем),
Это вызвано тем, что второе ${param}
внутренние одинарные кавычки, что означает, что это интерпретируется, когда команда выполняется в, который не наследовал переменную, поскольку это не экспортировалось.
Так как это - пустая строка в той точке, notify-send
выходы с ошибкой, поскольку непустая сводка требуется.
Вы можете export
переменная для содержания значения Вы хотите использовать, и использовать ту переменную в одинарных кавычках, передать значение в. Или, как at
чтения от stdin, можно просто вывести сценарий непосредственно без постороннего выхода, как так:
#!/bin/sh at now << EOF notify-send "${param}" "param with value" EOF