身份验证失败后,脚本不会重新启动

时间:2020-04-15 17:07:40

标签: linux shell

我为openconnect vpn连接编写了此脚本。现在,我想检查存储在$ vpn中的输出是否包含“身份验证失败”。如果包含,则应执行。再次脚本。

我的脚本如下:

#!/bin/bash
echo Bitte Passwort eingeben:
read x
if [ -z "$x" ]
then
    echo "Kein Passwort eingegeben!!!"
        echo "Bitte erneut versuchen"
            exec "/home/ubuntu/Dokumente/vpn.sh"
else
        vpn=$(echo $x |
        sudo openconnect vpn.domain.de --user=test.vpn --passwd-on-stdin --authgroup vpn-client-no-ise --no-dtls)
fi
if [[ $vpn == *"Authentication failed"* ]]; then
  echo "Dein Passwort war falsch!"
    exec "/home/ubuntu/Dokumente/vpn.sh"
fi
read

当我输入错误的密码时,它只会显示“身份验证失败”。但是它没有按预期重新启动脚本。 第二件事是,当我输入正确的密码时,它也不会连接。 当我删除此部分时:

if [[ $vpn == *"Authentication failed"* ]]; then
  echo "Dein Passwort war falsch!"
    exec "/home/ubuntu/Dokumente/vpn.sh"
fi

使用正确密码的连接有效。但是,如果$ vpn包含“身份验证失败”,我想重新启动脚本。 也许有人可以看到我的错误。

更新: 好的,我现在想出的是$ vpn中没有“身份验证失败”消息。每次都在变量之外。 但是我不明白为什么,因为$ vpn()绕过命令,并且消息也应该在变量内。 还是我必须换一种方式将变量也接收到答案?

0 个答案:

没有答案
相关问题