小编典典

将多行输出捕获到 Bash 变量中

all

我有一个脚本“myscript”,它输出以下内容:

abc
def
ghi

在另一个脚本中,我调用:

declare RESULT=$(./myscript)

$RESULT获得价值

abc def ghi

有没有办法用换行符或’\n’字符存储结果,以便我可以用’ echo -e‘输出它?


阅读 81

收藏
2022-03-04

共1个答案

小编典典

实际上,RESULT 包含您想要“演示”的内容:

echo "$RESULT"

你所展示的就是你从中得到的:

echo $RESULT

如评论中所述,不同之处在于 (1) 变量 ( ) 的双引号版本echo "$RESULT"保留了值的内部间距,与变量“换行符、制表符、多个空格和所有”中表示的值完全相同,而(2) 未加引号的版本 ( echo $RESULT) 用一个空格替换一个或多个空格、制表符和换行符的每个序列。因此 (1) 保留输入变量的形状,而 (2)
创建一个可能非常长的单行输出,其中“单词”由单个空格分隔(其中“单词”是非空白字符的序列;不需要’不是任何单词中的任何字母数字)。

2022-03-04