我有有很多的bash脚本echo
语句,也是我别名echo
到echo -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
您可以控制的反斜杠转义序列扩张的bash的echo
内置命令与xpg_echo
外壳选项。
将其设置在任何bash脚本的顶部,可以echo
自动扩展反斜杠转义,而不必添加-e
到每个echo命令。
shopt -s xpg_echo
echo 'foo\nbar'
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句