1

Я не могу использовать свою настраиваемую команду псевдонима в утилите наблюдения для наблюдения за другими очередями. Он говорит, что команда не найдена. Есть ли способ использовать команду aliased в утилите наблюдения?

$ alias lq='ls -lhrt /home/foo/stat/*.msg'

$ watch lq
sh: lq: command not found

1 ответ1

1

Нет простого ответа: лучшее, что я мог сделать, это добавить функцию watchany содержащую:

watchany() { alias "$1" 2>/dev/null| \
  ( t=`line`; if [ -n "$t" ]; then t=${t#*=\'}; t=${t%\'}; shift; \
    watch $t "$@"; else watch "$@"; fi ) }

Это должна быть функция, чтобы избежать обработки в под-оболочке (и скобки () по той же причине). Вы можете добавить его в .bashrc .

Я не преследовал его до конца, но, как указано выше, он не работает должным образом с файлами или дополнительными параметрами, содержащими встроенные пробелы. Если это проблема, вам придется разработать ее самостоятельно.

Когда вы убедились, что он работает так, как вы хотите, вы можете заменить watch в функции на $( that $(which watch) а затем alias watch=watchall .

Если вы хотите просмотреть только один или два псевдонима, то, вероятно, проще всего добавить дополнительные псевдонимы, такие как:

alias watchlq='watch ls -lhrt /home/foo/stat/*.msg'

Конечно, вам нужно помнить, чтобы изменить watchlq если вы когда-либо измените lq .

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .