如何在bash中优雅地存储和输出多行内容?

32 浏览
0 Comments

如何在bash中优雅地存储和输出多行内容?

我试图将一段文本捕捉到一个变量中,并保留换行符,然后将其输出。

然而,当我捕捉文本或显示文本时,换行符似乎没有被保留。

有关我如何实现这一点的任何想法吗?

示例:

#!/bin/bash
read -d '' my_var <<"BLOCK"
this
is
a
test
BLOCK
echo $my_var

输出:

this is a test

期望输出:

this

is

a

test

0
0 Comments

问题的原因是在变量周围没有添加引号,解决方法是在变量周围添加引号。具体来说,使用echo "$my_var"来存储和输出多行内容。如果没有引号,echo命令会将输入的每一行作为独立的字符串进行解释并输出,而使用引号则会将输入作为一个包含多行的字符串进行输出。相关文档可以在'info echo'中找到。

0