如何从shell脚本获取密码而不回显
我有一个脚本可以自动执行需要访问密码保护系统的进程。 系统通过一个接受用户密码作为参数的命令行程序来访问。
我想提示用户输入密码,将其分配给shell变量,然后使用该变量构建访问程序的命令行(这当然会产生我将处理的流输出)。
我是Bourne / Bash中一个合理的shell编程人员,但我不知道如何接受用户输入,而没有将它回显给终端(或者可能使用'*'字符回显)。
有人能帮忙吗?
这是另一种做法:
#!/bin/bash
# Read Password
echo -n Password:
read -s password
echo
# Run Command
echo $password
read -s
会为你关闭回声。 只需用你想运行的命令替换最后一行的echo
即可。
#!/bin/bash
stty -echo
printf "Password: "
read PASSWORD
stty echo
printf "n"
一个班轮:
read -s -p "Password: " password
在Linux(和cygwin)下,这个表单在bash和sh中工作。 不过,它可能不是标准的Unix sh。
有关更多信息和选项,请在bash中键入“帮助阅读”。
$ help read
read: read [-ers] [-a array] [-d delim] [-i text] [-n nchars] [-N nchars] [-p prompt] [-t timeout] [-u fd] [name ...]
Read a line from the standard input and split it into fields.
...
-p prompt output the string PROMPT without a trailing newline before
attempting to read
...
-s do not echo input coming from a terminal
链接地址: http://www.djcxy.com/p/643.html
上一篇: How to get a password from a shell script without echoing