echo -e 在我的脚本中不起作用

ish*_*467 0 unix linux bash shell scripting

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

#!/bin/sh
echo -e "\nEnter password:"
stty -echo
read password
stty echo
echo
echo Password read.
Run Code Online (Sandbox Code Playgroud)

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

~/pgm $ ./em.sh
-e 
Enter password:
Run Code Online (Sandbox Code Playgroud)

代替

Enter password:
Run Code Online (Sandbox Code Playgroud)

wRA*_*RAR 6

POSIX不要求echo -esupport,它甚至禁止它,所以你/bin/sh不支持它并输出“-e”作为一个字符串。如果您真的想要它,您可以/bin/bash通过更改脚本的第一行或替换echo为printf.

  • 应该强调的是,POSIX 不仅没有定义额外的选项;它实际上*禁止*除了实现定义的`-n`之外的选项。除了打印文字“-e”之外,做任何事情都是不合规的行为。 (2认同)