【发布时间】:2013-10-22 19:14:05
【问题描述】:
所以有人向我展示了如何使用条件来测试用户是否输入了密码。 我想以他们的例子更进一步并使用循环(至少我认为它是这样称呼的)。
这是他们的例子:
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
感谢大家的帮助,我将使用它并从中学习。
【问题讨论】:
标签: bash shell variables input