You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Bash脚本用户名密码验证功能异常问题求助

Bash脚本用户名/密码验证问题修复

问题出在字符串比较误用了整数运算符:你脚本里使用的-eq是专门用于整数比较的运算符,当用它对比非数字字符串时,Bash会自动将这些字符串解析为0。所以不管输入什么用户名,$username和correct_u都会被当作0处理,0 -eq 0永远成立,导致用户名验证一直显示通过。密码验证也存在同样的问题。

修复方案

字符串比较需要使用==(在[[ ]]语法中推荐使用该写法),同时建议给变量加上双引号,避免特殊字符引发的意外问题。另外修正了脚本里的拼写错误(Incorect改为Incorrect)。

修改后的完整脚本:

#!/bin/bash
echo "Username"  
read username  
echo "Password"
read password
sleep 1
correct_u=user
correct_p=pass
if [[ "$username" == "$correct_u" ]]
then
  echo "Username Verified..."
else 
  echo "Username Incorrect..."
fi
sleep 1
if [[ "$password" == "$correct_p" ]]
then 
  sleep 1
  echo "Password Verified..."
else 
  echo "Password Incorrect..."
fi

内容的提问来源于stack exchange,提问作者Mikeowsky

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 08:35:27