我无法在监视实用程序中使用自定义别名命令来监视不同的队列。它说未找到命令,有没有办法在监视实用程序中使用别名命令?
$ 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 ) }
它需要是一个函数,以避免在子 shell 中处理(括号也是()
出于同样的原因)。您可以将其添加到.bashrc
。
我还没有把它做到极致,但如上所述,它不能很好地处理包含嵌入空格的文件或额外参数。如果这是一个问题,你必须自己详细说明。
当您确信它可以按您希望的方式工作时,您可以用然后替换watch
该函数。$(which watch)
alias watch=watchall
如果您只想观看一两个别名,那么最简单的方法可能是添加额外的别名,例如:
alias watchlq='watch ls -lhrt /home/foo/stat/*.msg'
当然,watchlq
如果您要改变的话,您就需要记住进行改变lq
。