Bash字符串替换添加了前面的空格

问题描述

为什么echo -e {1..3}"\n"添加一个空格。

1
 2
 3

我设法用echo -en "\r"{1..3}"\n"打印所需的输出

1
2
3

解决方法

因为{1..3}"\n"扩展为1\n 2\n 3\n,并且echo在其参数之间打印空格。

改为使用printf

$ printf '%s\n' {1..3}
1
2
3