POSIX 追加换行符?

POSIX append with newline?

foo="thank you"

foo=$(echo "$foo"; echo "for your help")

echo "$foo" 的输出符合要求:

thank you
for your help

有没有更好的 POSIX 方法来在两个字符串之间添加一个换行符?这种方法感觉很脏。

更新:

foo="thank you\nfor your help"
echo -e $foo

使用printf怎么样?

$ foo='thank you'
$ foo="$(printf "%s\n%s" "$foo" "for your help")"
$ echo "$foo"
thank you
for your help

我认为最简单的方法是从双引号字符串赋值:

foo="$string_one
$string_two"

或连接命令的输出:

foo="$a_string
$(some_command)"

这种方法不需要调用额外的命令并且是可移植的。