![要求用户重新输入显示的随机数字符串的登录脚本](https://linux22.com/image/146044/%E8%A6%81%E6%B1%82%E7%94%A8%E6%88%B7%E9%87%8D%E6%96%B0%E8%BE%93%E5%85%A5%E6%98%BE%E7%A4%BA%E7%9A%84%E9%9A%8F%E6%9C%BA%E6%95%B0%E5%AD%97%E7%AC%A6%E4%B8%B2%E7%9A%84%E7%99%BB%E5%BD%95%E8%84%9A%E6%9C%AC.png)
我目前有一个脚本,在用户登录 Linux 服务器时运行,最后打印
[Terms of use agreement prints here]
read -p "Agree and continue..." -nl -s
然而,我发现大多数用户只是通过提示(空格键、回车键、随机键等)“输入”,因为脚本并不寻找特定的条目,现在用户已经编写了自己的脚本或宏来输入过去的内容。
作为解决方案,我希望脚本打印一串随机数字,然后要求用户在允许访问之前将这些数字重新输入到提示中。
例子:
“欢迎来到服务器!请输入以下一次性密码继续:1234。
钥匙: ”
我怎样才能做到这一点?
答案1
有必要使用读-p?否则,您可以执行以下操作(这将是概念验证脚本):
#!/bin/bash
RANDOMNUM=$(shuf -i 0000-9999 -n 1)
echo "Introduce password $RANDOMNUM"
read value
if [ $value == $RANDOMNUM ];
then
echo "Password Match!"
else
exit
fi
舒夫将创建 0000 到 9999 之间的 4 位随机数。