#!/bin/bash count=3 while[ $count -gt 0 ]; do read passwd if[ $passwd -eq 'zust']; then echo "Success" exit else echo "Password error" count=$((count-1)) fi done echo "Login failed"
时间: 2024-02-14 11:16:26 浏览: 143
这段代码中有两个错误:
1. `while[ $count -gt 0 ];` 应该改为 `while [ $count -gt 0 ];`,即 while 和 `[` 之间需要有空格。
2. `if[ $passwd -eq 'zust'];` 应该改为 `if [ $passwd = 'zust' ];`,即 if 和 `[` 之间需要有空格,且字符串比较应该使用 `=` 而不是 `-eq`。
以下是修改后的代码:
```
#!/bin/bash
count=3
while [ $count -gt 0 ]; do
read passwd
if [ $passwd = 'zust' ]; then
echo "Success"
exit
else
echo "Password error"
count=$((count-1))
fi
done
echo "Login failed"
```
相关问题
4、 使用while语句设计一个程序while.sh,输入的passwd不等于itcast时输出Try again ,重试次数不超过3次。
可以使用以下脚本实现:
```bash
#!/bin/bash
count=0
while [ $count -lt 3 ]
do
read -p "请输入密码:" passwd
if [ "$passwd" != "itcast" ]; then
echo "密码错误,请重试!"
count=$((count+1))
else
echo "密码正确,进入系统。"
break
fi
done
if [ $count -eq 3 ]; then
echo "重试次数已达上限,程序退出。"
fi
```
脚本中使用了while循环,当输入的密码不等于"itcast"时,输出提示信息并将计数器count加1,表示重试次数加1。当输入的密码等于"itcast"时,输出密码正确的提示信息,并使用break语句跳出循环。如果重试次数达到3次,则输出提示信息并退出程序。
阅读全文