こんにちは、次のようにwatchコマンドを実行するのに問題があります。
watch cat /proc/$(ps ax | grep processname | grep -v grep | awk '{print $1}')/status
このコマンドは起動時に機能します。しかし、見ているプロセスを再起動しましたが、watchコマンドはまだ古いプロセスIDを使用します。プロセスIDを更新し、同じ名前の新しいプロセスのステータスを表示したいと思います。この部分は$(ps ax | grep processname | grep -v grep | awk '{print $1}')
明らかに最初にのみ実行されます。時計が更新されるたびに出力をどのように再評価できますか?
catコマンドをbashスクリプトに入れ、watchでスクリプトを実行したくありません。
ベストアンサー1
これはきちんとしたアプローチではありませんが、実際にスクリプトを生成する意思がない場合です。あなたは試すことができますeval
。
watch eval 'cat /proc/$(ps ax | grep processname | grep -v grep | awk '"'"'{print $1}'"'"')/status'