echo输出-b参数在bash脚本中我怎么能阻止这个?

我已经阅读了关于echo的手册页,它告诉我-e参数将允许转义字符(例如换行符的转义n)具有其特殊含义。当我输入命令
$ echo -e 'foo\nbar'

进入交互式bash shell,我得到了预期的输出

foo
bar

但是,当我使用相同的命令(我已尝试将此命令字符作为测试用例的字符)时,我得到以下输出

-e foo
 bar

这就好像echo将-e解释为一个参数(因为换行符仍然显示),但它也将-e解释为一个回显的字符串。这里发生了什么?如何防止-e出现?

您需要使用#!/ bin / bash作为脚本中的第一行。如果不这样做,或者使用#!/ bin / sh,则脚本将由Bourne shell运行,并且其echo不识别-e选项。通常,如果可移植性很重要,建议所有新脚本使用printf而不是echo。

在Ubuntu中,sh由符号链接提供给/ bin / dash。

相关文章

用的openwrt路由器,家里宽带申请了动态公网ip,为了方便把2...
#!/bin/bashcommand1&command2&wait从Shell脚本并行...
1.先查出MAMP下面集成的PHP版本cd/Applications/MAMP/bin/ph...
1、先输入locale-a,查看一下现在已安装的语言2、若不存在如...
BashPerlTclsyntaxdiff1.进制数表示Languagebinaryoctalhexa...
正常安装了k8s后,使用kubect工具后接的命令不能直接tab补全...