別のコマンドへの入力として1つのコマンドのシェル出力

別のコマンドへの入力として1つのコマンドのシェル出力

自動化しようとしています。Forever JSは開発サーバーを引き続き実行します。これを行うには、永続プロセスを確認して停止して別のプロセスを開始する必要があります。実行して

sudo forever list

次の結果が表示されます。

メッセージ:永久に実行されるプロセス
データ:永久にuidコマンドスクリプトPID   IDログファイルの稼働時間       
データ: [0] 0NQH /usr/bin/nodejs app.js 17047   17049    /home/ubuntu/.forever/0NQH.log 0:2:4:58.594

上記の出力から必要です。PIDこれは17049現在を次のように次のコマンドに入力します。

sudo forever stop {{pidfromabove}}

これを達成するために、私のスクリプトで主に2つの文字列の間を見つけるために多くの努力をしました。application.jsそして/家ただし、何らかの理由で行全体を印刷し続けます。私はsedとawkのさまざまな組み合わせを試しました。次のコマンドで提供するために上記からpidをどのように取得できますかstop

ベストアンサー1

これはユースケースのように見えますawk。目的のPIDが常に行の7番目の要素になるように出力形式が安定していると確信している場合は、PIDが印刷されますapp.js

sudo forever list | awk '/app\.js/ { print $7 }'

おすすめ記事