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 ) }

它必須是一個函數,以避免在子 shell 中進行處理(()括號中的原因相同)。您可以將其新增至.bashrc.

我還沒有將它追求到極致,但如上所述,它不能正確處理包含嵌入空格的檔案或額外參數。如果這是一個問題,您必須自己詳細說明。

當您確信它按您想要的方式工作時,您可以watch在函數中替換為$(which watch)和 then alias watch=watchall

如果您只想觀看一兩個別名,那麼添加額外的別名可能是最簡單的,例如:

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

watchlq當然,如果你要改變,你需要記住改變lq

相關內容