如何让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
我希望第二个命令产生与第一个命令相同的输出。
答案 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"