0

init スクリプトの出力を変数に取り込もうとしていますが、この場合、init スクリプトが log_daemon_msg と log_failure_msg を使用しているため、あまり簡単ではありません。出力がこのパイプを正常に通過する理由:

service tomcat7 start | grep Tomcat

しかし、これではありませんか?

service tomcat7 start | read OUTPUT; echo $OUTPUT

2 番目の例では、$OUTPUT の値がすべての init スクリプトのリストになっていますが、これは私が期待したものではありません。同様に、次の例も /etc/init.d 内のすべてのリストになります。

OUTPUT=$(service tomcat7 start)
4

3 に答える 3

1

2 番目の例では、サブシェルでreadの値を設定します。OUTPUTパイプラインが終了すると、サブシェルが終了し、の値OUTPUTが失われます。3 番目の例を使用します。

于 2013-03-14T12:46:51.463 に答える
0

$OUTPUT に展開される特殊文字 (ファイル名展開用) が含まれている場合は、既に機能している可能性がありますが、機能していないように見えます。試してみてくださいecho "$OUTPUT"

于 2014-06-16T08:35:25.943 に答える
0
service tomcat7 start | 
while read OUTPUT
do
   echo $OUTPUT
done

これは、コマンドからの出力が 1 行だけでなく、複数の行があるため機能します。複数の読み取りが必要です。コマンドから送信される行が複数あるためです。

于 2013-03-14T02:39:28.400 に答える