# updown.sh: HINT: openvp n... --setenv prevgw 10.1.33.3
$ ip r | grep 'tun0' | grep '0.0.0.0' | cut -d ' ' -f 3
10.1.33.3
$ openvpn --config basel2 --script-security 2 --route remote_host --persist-tun --up updown.sh --down updown.sh --route-noexec --setenv hopid 2 --setenv prevgw 'ip r | grep 'tun0' | grep '0.0.0.0' | cut -d ' ' -f 3'
Tue Jan 28 11:13:04 2020 Multiple --up scripts defined. The previously configured script is overridden.
Tue Jan 28 11:13:04 2020 Multiple --down scripts defined. The previously configured script is overridden.
Options error: Unrecognized option or missing or extra parameter(s) in [CMD-LINE]:1: setenv (2.4.4)
Use --help for more information.
openvpn --config basel2 --script-security 2 --route remote_host --persist-tun --up updown.sh --down updown.sh --route-noexec --setenv hopid 2 --setenv prevgw "$(ip r | grep 'tun0' | grep -m 1 '0.0.0.0' | cut -d ' ' -f 3)"
Du musst das entsprechende Paket installieren wenn es fehlt, mit APT z.B. so: sudo apt update && sudo apt install resolvconfklar fehlt die Datei update-resolv-conf aber was muss darein?
Du musst lediglich noch dem String mitteilen, dass die Ermittlung des Gateways innerhalb dieses Strings ausgeführt werden muss, dann sieht das für den von Dir genannten Fall so aus:
Bash:openvpn --config basel2 --script-security 2 --route remote_host --persist-tun --up updown.sh --down updown.sh --route-noexec --setenv hopid 2 --setenv prevgw "$(ip r | grep 'tun0' | grep -m 1 '0.0.0.0' | cut -d ' ' -f 3)"
Hinweis: im String habe ich beim 'grep' noch den Parameter '-m 1' hinzugefügt.
Dadurch wird immer nur EIN Ergebnis ausgegeben. Dies kann sonst zum Fehlerfall kommen, wenn mehrere Ergebnisse erzielt werden -> denn du musst das ermittelte Gateway ja nur ein Mal übergeben.