
ウォッチ ユーティリティでカスタマイズしたエイリアス コマンドを使用して、別のキューを監視することができません。コマンドが見つからないと表示されます。ウォッチ ユーティリティでエイリアス コマンドを使用する方法はありますか?
$ 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
。