POSIX 追加换行符?
POSIX append with newline?
foo="thank you"
foo=$(echo "$foo"; echo "for your help")
echo "$foo"
的输出符合要求:
thank you
for your help
有没有更好的 POSIX 方法来在两个字符串之间添加一个换行符?这种方法感觉很脏。
更新:
- 我必须在许多环境中 运行,其中一个拒绝
echo -e
。
- 我可能想附加两个变量,或者将
$some-command.sh
的结果附加到一个变量。
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)"
这种方法不需要调用额外的命令并且是可移植的。
foo="thank you"
foo=$(echo "$foo"; echo "for your help")
echo "$foo"
的输出符合要求:
thank you
for your help
有没有更好的 POSIX 方法来在两个字符串之间添加一个换行符?这种方法感觉很脏。
更新:
- 我必须在许多环境中 运行,其中一个拒绝
echo -e
。 - 我可能想附加两个变量,或者将
$some-command.sh
的结果附加到一个变量。
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)"
这种方法不需要调用额外的命令并且是可移植的。