2017-06-13 76 views
0

我有一個像下面如何在shell腳本輸出中保留新行?

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

script2.sh產生大量日誌的線在我的shell腳本一條線。我想要grep其輸出的特定行。我的問題是$output_logs的整個輸出爲script2.sh作爲單行字符串,因此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 *是否真的想要傳遞所有參數,即''$ @「'')。 –

相關問題