Пользовательский псевдоним Linux в команде watch?

Пользовательский псевдоним Linux в команде watch?

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

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

$ watch lq
sh: lq: command not found

решение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функцию на , $(which watch)а затем на alias watch=watchall.

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

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

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

Связанный контент