所以有人告诉我如何使用条件来测试用户是否输入了密码输入。 我想进一步采取他们的例子并使用一个循环(至少那就是我认为它的召唤)。
以下是他们的例子:
read -s -p "Enter new password: " NEWPASS
if test "$NEWPASS" = ""; then
echo "Password CAN NOT be blank re-run sshd_config"
exit 1;
fi
我没有退出脚本,而是希望它继续询问输入,直到有一些。
我想做这样的陈述,但我做错了: (现在使用顶级示例)
用户有机会输入新密码并填写变量值。
read -s -p "Enter new password:" NEWPASS
echo ""
下一部分检查变量以查看它是否包含值,而值为null则请求用户无限期地填充该值。 (循环)
while [[ -z "$NEWPASS" ]]; do
echo ""
echo "Password CAN NOT be blank"
echo ""
read -s -p "Enter new password:" NEWPASS;
echo ""
done
此行搜索包含另一个文件使用的一组变量的文件。然后它在文件中搜索包含PASS =。*(。*表示任何内容)的行,然后写入PASS = $ NEWPASS($ NEWPASS变量)
sed -i -e"s/^PASS=.*/PASS=$NEWPASS/" /etc/sshd.conf
感谢您的帮助,我将使用它并从中学习。
答案 0 :(得分:21)
这个while循环应该有效:
while [[ -z "$NEWPASS" ]]
do
read -s -p "Enter new password: " NEWPASS
done
答案 1 :(得分:3)
while read -s -p 'Enter new password: ' NEWPASS && [[ -z "$NEWPASS" ]] ; do
echo "No-no, please, no blank passwords!"
done