我有一個像下面如何在shell腳本輸出中保留新行?
output_logs=`sh script2.sh $1 $2`
script2.sh
產生大量日誌的線在我的shell腳本一條線。我想要grep
其輸出的特定行。我的問題是$output_logs
的整個輸出爲script2.sh
作爲單行字符串,因此grep
會產生奇怪的結果。如何從script2.sh
獲取日誌以存儲在單獨的行中?
我有一個像下面如何在shell腳本輸出中保留新行?
output_logs=`sh script2.sh $1 $2`
script2.sh
產生大量日誌的線在我的shell腳本一條線。我想要grep
其輸出的特定行。我的問題是$output_logs
的整個輸出爲script2.sh
作爲單行字符串,因此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'。修復。 –