好的,所以我正在尝试创建一个用户名/密码登录脚本。 (可能不是我仍在研究的最安全的想法);)
我的脚本将加载变量以与这样的文件进行比较。 (现在我只是在研究密码部分)
./path/to/variables.conf
该文件将包含一个名为的变量
PASS=SOME_VALUE
我打算使用 read 来获取要比较的变量
read -p "Enter your password:" CPASS;
现在我缺少的部分(我设想它是如何工作的)
while "$CPASS" doesn't match "$PASS" do
read -p "Wrong password, try again:" CPASS;
谢谢您并感谢任何帮助。
这应该可以做到。您只需[ ]
大括号和!=
运算符至在 bash 中比较字符串 http://www.gnu.org/software/bash/manual/bashref.html#Bash-Conditional-Expressions:
PASS=SOME_VALUE
read -p "Enter your password:" CPASS
while [ "$CPASS" != "$PASS" ]; do
read -p "Wrong password, try again:" CPASS
done
另请注意,强烈建议通过-s
要读取的参数,以便输入的密码不会回显给用户。来自read
的部分man bash
:
-s Silent mode. If input is coming from a terminal, char-
acters are not echoed.
请注意,当用户按 ENTER 键时,也不会向用户回显换行符,因此您必须在每次之后手动插入换行符read
以便行的格式正确。因此,您可能应该用这样的内容替换您的读取语句:
read -s -p "Enter your password:" CPASS
echo
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)