Использование команд bash в сочетаниях клавиш

Я пытаюсь установить сочетание клавиш для notify-send $(fortune), но когда я его активирую, он просто отправляет уведомление, в котором говорится $(fortune), вместо фактического предоставления состояния. Обратите внимание, что если я запустил его в терминале, он работает по назначению (т. Е. Отправляет уведомление с результатом fortune). Это, по-видимому, означает, что при активации сочетания клавиш он не интерпретирует его как команду bash, а скорее просто запускает программу notify-send с аргументом $(fortune).

Как мне получить

Обратите внимание, что я попытался поместить его в сценарий оболочки и сделать sh ~/tell-fortune.sh, но это тоже не работает.

0
задан 6 March 2018 в 10:58

2 ответа

$(...) - это функция оболочки, а команда командной строки клавиатуры не запускается в оболочке.

Попробуйте это вместо:

sh -c 'notify-send $(fortune)'

Что касается sh tell-fortune.sh, без указания полного пути к tell-fortune.sh, где sh будет искать его?

Что касается sh ~/tell-fortune.sh, ~ также является оболочкой, без оболочки, он будет искать файл на относительном пути ~/tell-fortune.sh, где ~ взят как есть.

2
ответ дан 17 July 2018 в 19:26

$(...) - это функция оболочки, а команда командной строки клавиатуры не запускается в оболочке.

Попробуйте это вместо:

sh -c 'notify-send $(fortune)'

Что касается sh tell-fortune.sh, без указания полного пути к tell-fortune.sh, где sh будет искать его?

Что касается sh ~/tell-fortune.sh, ~ также является оболочкой, без оболочки, он будет искать файл на относительном пути ~/tell-fortune.sh, где ~ взят как есть.

2
ответ дан 23 July 2018 в 20:11
  • 1
    Так просто используйте абсолютный путь? – PyRulez 7 March 2018 в 02:14

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

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