SSH 登录脚本

SSH 登录脚本

我正在编写一个脚本,需要检查所有服务器的登录凭据。它也应该使用密码进行验证。我使用以下逻辑,但当成功条件时,它会因中断 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 ]。)

相关内容