我正在尝试从用户那里读取密码,我使用了-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
系统上的可执行文件。
在非bash
shell 中,您可能会得到类似的效果
printf 'Enter password: ' >&2
stty -echo
read password
stty echo