引用符を含む引数を指定してwatchコマンドを使用する


15

私は、引用符を含むコマンドでwatchが正しく機能するようにしています。また、watchのマニュアルページでは、引用符のしくみについて詳しく説明していません。具体的な例として、watch内で次のコマンドを実行するにはどうすればよいですか。

ps -ef | awk -F' ' '{print $2}'

私はもう試した:

watch "ps -ef | awk -F' ' '{print $2}'"

そして

watch 'ps -ef | awk -F\' \' \'{print $2}\''

しかし、どちらも正しく機能しません。

回答:


18

あなたは$サインをエスケープする必要があると思います:

watch "ps -ef | awk -F' ' '{print \$2}'"

それ以外の場合は、シェルによって解釈され、空の文字列("")にawkなります。つまり、行全体が出力されます。


7

コマンドを常にシェルスクリプトに入れて、スクリプトを「監視」することができます。


2

私は同様の問題に遭遇しました。時計のMan Pageを読んだ後、私は機能する解決策を見つけました。それはbashで文字列を連結することです。最後のコマンドは奇妙に見えました。

watch "ps -ef | awk -F' ' '"'{print $2}'"'"

または

watch 'ps -ef | awk -F'"' ' '"'{print $2}'"'"
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.