Mac下执行ssh+别名的时候如何获取到当前别名
发布于 5 年前 作者 im-here 3116 次浏览 来自 问答

主要需求:iTerm2有时候连的服务器有点多,不知道哪个连的是哪个服务器了 配置iTerm2的Badges想把当前连接的服务器别名显示出来。看了iTerm2文档可以自定义变量名,代码如下

# bash: Place this in .bashrc.
function iterm2_print_user_vars() {
  iterm2_set_user_var my_var xxx
}

我在~.ssh/config配置了我所有远程服务器的别名,连接远程服务器的时候,只需要 ssh+别名就能连上。 上面的代码里 my_var 就是我自己定义的变量名,xxx 我是想取到的config里配置的别名。 不知道我说清楚没,有做过这方面的配置的吗?

4 回复
#!/bin/bash

#define
fontGreen="\033[32m"
fontDefault="\033[0m"

#servers
baidu=baidu.com
target=${!1}

#function
check(){
    if  [ ! -n "$1" ] ;then
        echo "最少需要一个参数"
    else
        target=${!1}
        if  [ ! -n "$target" ] ;then
            echo "不存在的服务器"
            return
        fi
        echo "连接到" $target "..."
    fi
}

login(){
    ssh root@"$target"
}

#action
echo -e $fontGreen
echo Fast SSH
check $1
echo -e $fontDefault
login

ssh 自管理快速连接

@MiguelValentine ${!1}是什么意思?能判断服务器存不存在?

@asfman 判断变量是否存在。

回到顶部