bash – echo -e反斜杠转义在sh中没有得到尊重
发布时间:2020-12-15 21:08:38 所属栏目:安全 来源:网络整理
导读:我有一个 shell脚本,我希望在不同的 Linux服务器上运行.当我使用-e选项运行echo命令并在字符串中转义字符时,它在Ubuntu 12.04或Ubuntu 11.04上的sh shell上没有按预期执行.我们正在使用的两个服务器,我希望脚本可以运行CentOS 5.3和Ubuntu 12.04.当我在两个
我有一个
shell脚本,我希望在不同的
Linux服务器上运行.当我使用-e选项运行echo命令并在字符串中转义字符时,它在Ubuntu 12.04或Ubuntu 11.04上的sh shell上没有按预期执行.我们正在使用的两个服务器,我希望脚本可以运行CentOS 5.3和Ubuntu 12.04.当我在两个服务器上的bash中运行以下命令时,会产生预期的输出:
$echo -e "line1nline2" line1 line2 当我在CentOS机器上运行相同的命令时,也会产生正确的输出.但是当我在Ubuntu 12.04或11.04上运行命令时,会产生以下输出: $echo -e "line1nline2" -e line1 line2 有趣的是,如果我在Ubuntu上运行以下内容,它会自动解释转义字符. $echo "line1nline2" line1 line2 该脚本需要在sh shell中运行,并且应该可以在不同的机器上移植.任何解决方案我也非常感谢某些文档的链接,解释了为什么或如何发生这种情况. 解决方法
Ubuntu中的sh shell是破折号.它的内置回声没有-e选项(因此它只是简单地回应它,如你所见),或者说,它没有办法关闭转义行为.
请改用/ bin / echo. 要检查您正在使用的shell,请尝试echo $SHELL $echo $SHELL /bin/bash (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- Scala缓冲区:大小或长度?
- metro ui,跟bootstrap差不多,一个很不错的前端框架,
- scala中的类型安全的respond_to可能吗?
- bash – 如何在不影响其他完成脚本的情况下重置COMP_WORDBR
- 预览本地图片--Angular4
- scala – 单个对象的protected [package]和private [packag
- angularjs如何根据index.html中的路由进行设置
- object is not an instance of declaring class while invo
- twitter-bootstrap-3 – 在Phoenix Framework中集成Bootstr
- Angular 2 + 折腾记 :(5) 动手实现一个自定义管道