Shell脚本使用while循环实现密码一致性校验的问题求助
Shell 密码一致性循环校验实现方案
以下是修改后的可直接运行的完整代码:
#!/bin/bash # 用户名仅需输入一次,放在循环外即可 read -p "Input new username please?: " user # 启动无限循环处理密码校验逻辑 while true do # 新增-s参数隐藏密码输入,符合常规密码输入安全要求,不需要可删除 read -s -p "Input password: " password # 补充换行,避免后续提示和上一行挤在同一行 echo read -s -p "Re-enter password: " verify echo if [ "$password" != "$verify" ] then echo "Password does not match. Please try again." else echo "Password Successful!!" # 密码匹配,直接跳出循环,执行后续业务逻辑 break fi done
实现逻辑说明
- 用户名不需要重复输入,因此保留在循环外部执行
- 使用
while true启动无限循环,所有密码输入、校验逻辑全部放在循环体内 - 两次密码输入一致时,执行
break命令终止循环,继续执行循环外的后续脚本逻辑 - 密码不一致时,循环会自动回到起点,要求用户重新输入密码
- 额外补充的
-s参数会隐藏用户输入的密码内容,不需要该特性直接删除该参数即可
内容的提问来源于stack exchange,提问作者JHussle
相关产品推荐
相关产品推荐

