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

監視したいエイリアスが 1 つまたは 2 つだけの場合は、次のようなエイリアスを追加するのが最も簡単です。

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

もちろん、watchlq変更する場合は変更することを覚えておく必要がありますlq

関連情報