read -s 通过脚本给出错误

read -s 通过脚本给出错误

我正在尝试从用户那里读取密码,我使用了-s静默标志,但read -s在脚本中不起作用,但如果我从终端手动执行它,它就可以工作。

错误详情

project.sh: 3: read: Illegal option -s
you entered 

代码

maddy@ElementalX:~/Desktop$ cat project.sh 
#!/usr/bin/sh

read -s -p "Enter Password: " pswd
echo "you entered $pswd"
maddy@ElementalX:~/Desktop$ 

答案1

-s内置实用程序的选项不是read标准选项,并且不太可能在sh.同样,-p提供自定义提示的选项不太可能由通用sh.

相反,运行您的脚本bash,它read支持-s从终端读取而不回显输入的字符(以及-p)。最简单的方法是将#!-line 更改为指向bash系统上的可执行文件。

在非bashshell 中,您可能会得到类似的效果

printf 'Enter password: ' >&2

stty -echo
read password
stty echo

相关内容