如何在bash中优雅地存储和回显多条线?

Emp*_*nes 22 linux bash scripting

我正在尝试将一个文本块捕获到变量中,并保持换行符,然后回显它.

但是,当我捕获文本或显示文本时,似乎不会保留换行符.

有关如何实现这一目标的任何想法?

例:

#!/bin/bash

read -d '' my_var <<"BLOCK"
this
is
a
test
BLOCK

echo $my_var
Run Code Online (Sandbox Code Playgroud)

输出:

这是一个测试

期望的输出:

这个

一个

测试

ken*_*ytm 46

echo "$my_var"
Run Code Online (Sandbox Code Playgroud)

  • @SamStoelinga:来自'info echo':[`echo'将每个给定的STRING写入标准输出,每个和最后一个之后的换行符之间有一个空格.]如果没有引号,echo会将输入中的行解释为单独的字符串,并且将它们打印出来,用空格分隔.使用引号,echo将输入打印为一个字符串(包含许多行). (3认同)