終了していないプロセスの出力を変数としてキャプチャ

終了していないプロセスの出力を変数としてキャプチャ

この質問は以前に提起され、回答されたと疑われますが、検索が正しいかどうかはわかりません。

起動時にURLとポートを含む行を出力する終了しないプロセス(サーバー)があります。その行を変数としてキャプチャして他のプログラムに渡すことができるようにしたいと思います。

だから私は次のようにします:

% export URL=`server start` &

URLただし、(私の考えでは:-))終了せserverずに実行され続けるため、設定されません。

server他の場所で使用するために印刷されたURLを変数としてキャプチャするにはどうすればよいですか?

ベストアンサー1

次のことを試すことができます。

server start &
cat /proc/${!}/fd/1

これでサーバーが起動し、$!対応するIDが返されます。 fd/1 は、/proc で使用できるプロセスの標準出力です。

注:異なるプロセスIDを返す可能性があるため、startと$!間に異なるコード行があってはいけません。

おすすめ記事