Ich -> Trottel
ich hab die exit-Zeile nicht übertragen. Problem dürfte gelöst sein. Mein Fehler, sorry.
Edit:
Ich habe das Skript mal um eine Neustartoption ergänzt, weil sich manchmal die VPN-Verbindung verabschiedet.
Allerdings wird cleanup() in jedem Fall zweimal aufgerufen aka das "exit 0" bewirkt kein exit aus dem Skript.
Findet jemand einen Fehler? bin grad etwas ratlos. (zsh als Interpreter aus Gewohnheit, ich weiß, Bash wäre vermutlich die bessere, weil höher verfügbare Variante, muss ich mir noch angewöhnen.)
#!/bin/zsh
cleanup() {
echo :: VPN closed
echo ":: restart VPN? [y/N]"
read wanted
if [[ $wanted == "y" ]] then
openconnect vpn.server
#falls der VPN-Client aus irgendeinem Grund ohne Ctrl+C, das getrapt wird, beendet werden, soll dennoch aufgeräumt werden
cleanup
else
echo :: stopping network
netctl stop <profile
echo :: network stopped
exit 0
#hier sollte der Drops gelutscht sein und das Skript beendet werden, was ausschließt, dass cleanup ein weiteres mal aufgerufen werden kann
fi
}
start() {
#start network
echo :: starting netctl
netctl start <profile> 2>/dev/null
if [[ $? == 0 ]] then
echo :: netctl started successfully
else
echo :: failed to start profile <profile>, trying to restart
netctl restart uni 2>/dev/null
fi
#indicate failed network start
if [[ $? != 0 ]] then
echo :: profile <profile> failed
exit 1
fi
#start vpn-connection
echo :: connecting to VPN
openconnect vpn.server
#falls der VPN-Client aus irgendeinem Grund ohne Ctrl+C, das getrapt wird, beendet werden, soll dennoch aufgeräumt werden
cleanup
}
trap "cleanup" INT
start