我有一个像下面如何在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'。修复。 –