Bash 如何在shell脚本输出中保留新行?

Bash 如何在shell脚本输出中保留新行?,bash,shell,Bash,Shell,我的shell脚本中有一行,如下所示 output_logs=`sh script2.sh $1 $2` script2.sh生成大量的日志行。我想grep它输出的特定行。我遇到的问题是$output_logs将script2.sh的整个输出作为一个单行字符串,因此grep会产生奇怪的结果。如何将script2.sh中的日志存储在单独的行中?也许您应该尝试类似的方法 output_logs=`sh script2.sh $1 $2` echo "$output_logs" 请注意,这与ech

我的shell脚本中有一行,如下所示

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

script2.sh生成大量的日志行。我想grep它输出的特定行。我遇到的问题是$output_logs将script2.sh的整个输出作为一个单行字符串,因此grep会产生奇怪的结果。如何将script2.sh中的日志存储在单独的行中?

也许您应该尝试类似的方法

output_logs=`sh script2.sh $1 $2`
echo "$output_logs"
请注意,这与echo$output_日志不同


变量的双引号版本保留值的内部间距,与变量中表示的值完全相同-换行符、制表符、多个空格和全部-而无引号版本用单个空格替换一个或多个空格、制表符和换行符的每个序列

你没有展示你如何知道$output_日志包含或不包含什么-如果你运行echo$output_日志并且认为这准确地反映了变量的输出,那么,这就是你的问题了。我也做了同样的事情。我确实回显了$output\u日志。修正了。1美元2美元,如果我们不想在那里拆分字符串。我想知道OP是否真的想传递所有参数,即$@。