如何让cat在每行后添加文字换行符? (对于bash中的echo -e)

时间:2015-05-13 00:17:57

标签: bash

如何让cat在每行之后添加文字换行符? (用于echo -e来读取它)在bash

root@111[~]# cat names 
Joe Smith
John St. John
Jeff Jefferson
root@111 [~]# var=`cat names`;echo -e $var
Joe Smith John St. John Jeff Jefferson

我希望第二个命令产生与第一个命令相同的输出。

1 个答案:

答案 0 :(得分:1)

首先,不要使用echo -e;它在这里没有添加任何值,并且the POSIX standard for echo明确禁止您期望它提供的行为(符合POSIX的echo具有XSI扩展名,将在没有-e的情况下遵循反斜杠转义; POSIX-没有XSI扩展的兼容echo将只回显文字字符串-e并仍然忽略反斜杠转义; GNU实现根据-e是否破坏标准的XSI和基线版本来改变其行为)。

其次,使用引号:

echo "$var"

...或者更好的是,完全跳过echo赞成printf

printf '%s\n' "$var"