当我在家时,我想使用本地网络连接到我的服务器,因为它比连接到它的外部IP地址更快。但是我想要一个自动连接到我内部IP的SSH会话的功能,具有参数功能,如果失败,请尝试使用外部IP(并再次使用参数)。
到目前为止,我所拥有的就是它,它似乎应该有效,而且我有一点时间调试它。
ssh_home() { if ssh user@192.168.2.2 "$@" then echo; else echo "WARNING: NOT on home connection!"; ssh user@host.me -p 10000 "$@"; fi; }
我目前收到的错误消息是:
syntax error near unexpected token `else'
但是,如果有其他陈述,我会抬起头来,而且我很确定我做得对..也许我的眼睛完全没有错过了。
答案 0 :(得分:3)
您忘记了then
:
ssh_home() { if ssh user@192.168.2.2 "$@"; then echo; else echo "WARNING: NOT on home connection!"; ssh user@host.me -p 10000 "$@"; fi; }
无论如何,为什么回声什么呢?为什么不扭转这种状况:
ssh_home() { if ! ssh user@192.168.2.2 "$@"; then echo "WARNING: NOT on home connection!"; ssh user@host.me -p 10000 "$@"; fi; }
为什么不在多行上编写函数,以便更容易阅读:
ssh_home() {
if ! ssh user@192.168.2.2 "$@"; then
echo "WARNING: NOT on home connection!"
ssh user@host.me -p 10000 "$@"
fi
}