2017-06-13 20 views
0

私はシェルスクリプトの出力に新しい行を保存するには?

output_logs=`sh script2.sh $1 $2` 

script2.sh以下のように私のシェルスクリプトのラインを持っているが、ログの行の多くを生産します。私はその出力のgrep特定の行にしたいです。私が持っている問題は$output_logsです。script2.shの出力全体が1行の文字列であり、grepはこれにより奇妙な結果を生成します。 script2.shのログを個々の行に保存するにはどうすればよいですか?

+0

あなたは '$ output_logs'が何をしているのか分からないのかを表示していません - もし' echo $ output_logs'を実行していて、これが変数の出力を正確に反映していると思うなら、 [BashPitfalls#14](http://mywiki.wooledge.org/BashPitfalls#echo_.24foo))。 –

+0

私はまったく同じことをしました。私は '$ output_logs'をエコーし​​ました。修正しました。 –

答えて

1

多分このようなものを試してください。

output_logs=`sh script2.sh $1 $2` 
echo "$output_logs" 

echo $output_logsとは異なります。

変数の二重引用符で囲まれたバージョンは、改行、タブ、複数の空白、およびすべての変数で表現されているとおりの値の内部スペースをそのまま保持しますが、引用符で囲まれていないバージョンでは、単一のスペースを持つ改行。

+0

'' $ 1 '"$ 2" 'もし文字列分割したくなければ、 (OP *が本当にすべてのパラメータ、つまり "$ @"を渡したいのではないかと思います)。 –

関連する問題