output_logs=`sh script2.sh $1 $2`
script2.sh
以下のように私のシェルスクリプトのラインを持っているが、ログの行の多くを生産します。私はその出力のgrep
特定の行にしたいです。私が持っている問題は$output_logs
です。script2.sh
の出力全体が1行の文字列であり、grep
はこれにより奇妙な結果を生成します。 script2.sh
のログを個々の行に保存するにはどうすればよいですか?
output_logs=`sh script2.sh $1 $2`
script2.sh
以下のように私のシェルスクリプトのラインを持っているが、ログの行の多くを生産します。私はその出力のgrep
特定の行にしたいです。私が持っている問題は$output_logs
です。script2.sh
の出力全体が1行の文字列であり、grep
はこれにより奇妙な結果を生成します。 script2.sh
のログを個々の行に保存するにはどうすればよいですか?
多分このようなものを試してください。
output_logs=`sh script2.sh $1 $2`
echo "$output_logs"
echo $output_logs
とは異なります。
変数の二重引用符で囲まれたバージョンは、改行、タブ、複数の空白、およびすべての変数で表現されているとおりの値の内部スペースをそのまま保持しますが、引用符で囲まれていないバージョンでは、単一のスペースを持つ改行。
'' $ 1 '"$ 2" 'もし文字列分割したくなければ、 (OP *が本当にすべてのパラメータ、つまり "$ @"を渡したいのではないかと思います)。 –
あなたは '$ output_logs'が何をしているのか分からないのかを表示していません - もし' echo $ output_logs'を実行していて、これが変数の出力を正確に反映していると思うなら、 [BashPitfalls#14](http://mywiki.wooledge.org/BashPitfalls#echo_.24foo))。 –
私はまったく同じことをしました。私は '$ output_logs'をエコーしました。修正しました。 –