パイプラインコマンド/プログラムチェーンでwatchコマンドを使用する方法

パイプラインコマンド/プログラムチェーンでwatchコマンドを使用する方法

私は通常Linuxユーティリティを使用して、毎秒繰り返しコマンドのwatch出力を表示しますnwatch df -h /some_volume/

watchしかし、次のような一連のパイプコマンドを使用できないようです。

$ watch ls -ltr|tail -n 1

これはwatch実際に観察し、何も出力されない場所ls -ltrに出力を渡します。tail -n 1

私がこれをしようとすると:

$ watch (ls -ltr|tail -n 1)

わかりました。

$ watch: syntax error near unexpected token `ls'

何らかの理由で、次のいずれかが失敗します。

$ watch <(ls -ltr|tail -n 1)

$ watch < <(ls -ltr|tail -n 1)

$ watch $(ls -ltr|tail -n 1)

$ watch `ls -ltr|tail -n 1)`

最後にこれを行うと:

$ watch echo $(ls -ltr|tail -n 1)

$()内部コマンドは一度だけ実行され、結果の出力文字列は常にテキスト(「ウォッチ」)で印刷されるため、指定された間隔内で出力に変化はありません。

それでは、このコマンドをパイプラインコマンドチェーンと連携させるにはどうすればよいですかwatch(それ以外の場合はスクリプトに入れますか)。

ベストアンサー1

watch 'command | othertool | yet-another-tool'

おすすめ記事