
我無法在監視實用程式中使用自訂的別名命令來監視不同的佇列。它說找不到命令,有沒有辦法在監視實用程式中使用別名命令?
$ 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)
和 then alias watch=watchall
。
如果您只想觀看一兩個別名,那麼添加額外的別名可能是最簡單的,例如:
alias watchlq='watch ls -lhrt /home/foo/stat/*.msg'
watchlq
當然,如果你要改變,你需要記住改變lq
。