微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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。

原文地址:https://www.jb51.cc/bash/387275.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐