Crear Bash Script para esperar y luego ejecutar

Lo que básicamente bash lograr es automatizar algo que hago cada vez que empiezo a trabajar.

En este order, yo

  1. Conexión VPN
  2. Abrir nueva pestaña gnome-terminal
  3. SSH en una máquina remota

Tengo esto hasta ahora:

 WID=$(xprop -root | grep "_NET_ACTIVE_WINDOW(WINDOW)"| awk '{print $5}') xdotool windowfocus $WID xdotool type --delay 1 --clearmodifiers "sudo openvpn --config 'conn1.ovpn'" xdotool key Return xdotool key ctrl+shift+t wmctrl -i -a $WID sleep 1 while ! $(/usr/bin/fping -q 192.168.0.5); do sleep 1;done xdotool type --delay 3 --clearmodifiers "ssh machine1" sleep 3 xdotool key Return 

El problema que tengo es que los commands SSH requieren que la connection VPN se abra primero. Pensé que al poner el último command de suspensión, el código esperaría 3 segundos antes de presionar enter.

Lo que está sucediendo realmente es que el command openvpn no se ejecuta hasta después de la última suspensión, por lo que el command SSH falla.

¿Puede alguien señalarme en la dirección en que debo dirigirme hacia esto? Soy bastante nuevo en la creación de scripts de shell, pero no soy nuevo en Linux.

Ponga un bucle de espera antes de iniciar ssh:

 while ! $(/usr/bin/fping -q <openvpn remote endpoint ip>); do sleep 1;done