创建 Bash 脚本以等待然后运行

创建 Bash 脚本以等待然后运行

我基本上想要实现的是自动化我每次开始工作时所做的事情。

按照这个顺序,我

  1. VPN连接
  2. 打开新gnome-terminal选项卡
  3. 通过 SSH 连接到远程计算机

到目前为止我有这个:

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

我遇到的问题是 SSH 命令要求首先打开 VPN 连接。我认为通过输入最后一个睡眠命令,代码将等待 3 秒然后按 Enter。

实际发生的情况是该openvpn命令直到上次睡眠后才运行,因此 SSH 命令失败。

有人可以指出我需要朝这个方向前进的方向吗?

答案1

在启动 ssh 之前放置一个等待循环:

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

相关内容