【问题标题】:Echo -e is not working in my script [duplicate]Echo -e 在我的脚本中不起作用[重复]
【发布时间】:2016-04-10 15:39:48
【问题描述】:

我正在编写一个程序来使用 bash 脚本隐藏最终用户的密码

#!/bin/sh
echo -e "\nEnter password:"
stty -echo
read password
stty echo
echo
echo Password read.

它在终端中用 -e 显示输出

~/pgm $ ./em.sh
-e 
Enter password:

代替

Enter password:

【问题讨论】:

    标签: linux bash shell unix scripting


    【解决方案1】:

    POSIX doesn't mandate echo -e support,它甚至禁止它,所以你的/bin/sh 不支持它,而是输出“-e”作为字符串。如果你真的想要它,你可以通过更改脚本的第一行来切换到/bin/bash,或者将echo 替换为printf。

    【讨论】:

    • 谢谢你..它的工作原理。将 shebang 从 /bin/sh 更改为 /bin/bash
    • @mishakmadeena 我想你可以接受这个答案。
    • 应该强调的是,POSIX 不只是留下未定义的额外选项;它实际上禁止选项,而不是实现定义的-n。除了打印文字 -e 之外的任何操作都是不合规行为。
    猜你喜欢
    • 2017-05-22
    • 2012-12-18
    • 1970-01-01
    • 2021-10-04
    • 1970-01-01
    • 2015-03-11
    • 2018-04-20
    • 2021-10-30
    相关资源
    最近更新 更多