回声换行符在bash中不起作用

Bashuser

我有有很多的bash脚本echo语句,也是我别名echoecho -e两个.bash_profile.bashrc,使新线为语句正常打印一样echo 'Hello\nWorld'的输出应该是

Hello
World

但是我得到的输出是

Hello\nWorld

我什至尝试shopt -s expand_aliases在脚本中使用,但无济于事

我的脚本运行方式为bash /scripts/scriptnm.sh; 如果我. /scripts/scriptnm.sh在获得所需输出时运行它...

克里斯·约翰森

混合的历史记录echo意味着它的默认操作因外壳而异。POSIX指定echo如果第一个参数为-n或任何参数包含反斜杠,则的结果为“实现定义”

printf在行为更明确的情况下使用(作为内置命令或外部命令)使用更可靠:格式字符串(第一个参数)支持C样式的反斜杠转义符和格式说明符。

printf 'foo\nbar\n'
printf '%s\n%s\n' foo bar

您可以控制的反斜杠转义序列扩张的bashecho内置命令与xpg_echo外壳选项。

将其设置在任何bash脚本的顶部,可以echo自动扩展反斜杠转义,而不必添加-e到每个echo命令。

shopt -s xpg_echo
echo 'foo\nbar'

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章