Как показать, что параметры команды в уведомляют-osd сообщение?

Я хочу использовать 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 будет позже, конечно, заменен запланированным временем),

0
задан 17 November 2017 в 11:12

1 ответ

Это вызвано тем, что второе ${param} внутренние одинарные кавычки, что означает, что это интерпретируется, когда команда выполняется в, который не наследовал переменную, поскольку это не экспортировалось.

Так как это - пустая строка в той точке, notify-send выходы с ошибкой, поскольку непустая сводка требуется.

Вы можете export переменная для содержания значения Вы хотите использовать, и использовать ту переменную в одинарных кавычках, передать значение в. Или, как at чтения от stdin, можно просто вывести сценарий непосредственно без постороннего выхода, как так:

#!/bin/sh
at now << EOF
notify-send "${param}" "param with value"
EOF
0
ответ дан 1 November 2019 в 05:05

Другие вопросы по тегам:

Похожие вопросы: