我有一台家用电脑(我们称它为富兰克林,因为我就是这么称呼它的),我经常从我的工作笔记本电脑上通过 ssh 连接到它。当我在家时,我 ssh 到 franklin.local,而当我在工作或其他任何地方时,我 ssh 到 remote.address.of.franklin。
我希望在我的个人资料中有一个功能,该功能始终以正确的方式连接。我的网络状况经常变化(有线与无线、不同的 SSID 等),所以我不想通过检测网络状态来做到这一点,而是:
这是我现在使用的:
function franklin () {
ping -c 5 "franklin.local" > /dev/null
if [[ $? != 0 ]]
then
echo "franklin not available on local, so trying remote connection"
ssh -p 22 remote.address.of.franklin
else
echo "franklin available on local network, so trying local connection"
ssh username@franklin.local
fi
}
Run Code Online (Sandbox Code Playgroud)
问题是,ping 需要时间。我的问题是:我可以同时执行两个 ssh 命令,然后自动使用第一个连接的命令吗?