![SSH 登录脚本](https://linux22.com/image/1571156/SSH%20%E7%99%BB%E5%BD%95%E8%84%9A%E6%9C%AC.png)
我正在编写一个脚本,需要检查所有服务器的登录凭据。它也应该使用密码进行验证。我使用以下逻辑,但当成功条件时,它会因中断 while 循环而失败。
While read line
do
"C:/Programfiles/putty/plink.exe" - batch -pw "password" user@$line exit 10
var = $(echo "$?")
If [ $var =="10"]; then
echo "success"
else
echo "fail"
fi
done < serverlist.txt
每当用户凭证成功时,由于 exit 命令,它会退出 while 循环,因为服务器仍然需要检查。请帮我解决这个问题
答案1
嗯,你没有告诉它中断。你的成功条件是缺少命令break
。
while ...; do
...
if [ "$var" = "10" ]; then
echo "success"
break
else
echo "fail"
fi
done
您的 也是var = $(echo "$?")
双重冗余的。使用 您将获得相同的结果var=$?
。
(实际上你甚至可以$?
直接检查,例如[ $? = 10 ]
。)