这是我在这里的第一个帖子,所以请容忍我…
在完全配置了我的.bash_aliases文件之后,我发现了.ssh/config的惊人功能,由于我在编程方面相当差劲,我一直在寻找一种很好的方法来将bash_aliases文件中的连接详细信息解析到~/.ssh/config文件中。
所以,从细节上讲,我的bash_aliases看起来像这样:
alias serverA='ssh -i ~/.ssh/serverA.key -o $SRVR_ALV user@serverAhostname'
alias serverB='ssh -i ~/.ssh/serverB.key -o $SRVR_ALV user@serverBhostname'
....Host serverA
HostName serverAhostname
IdentityFile ~/.ssh/serverA.key
Host serverB
.....提前感谢!
发布于 2012-12-01 08:06:56
来点Perl怎么样?
perl -ne "/^alias (.*)='ssh -i (.*) -o (.*) (.*)\@(.*)'/ and
print qq{Host \$1\nHostName \$5\nIdentityFile \$2\n\n}" < \
~/.bash_aliases如果您喜欢所看到的内容,请将其重定向为追加到>> ~/.ssh/config
Perl更新--对非用户的解释:
perl -ne:-e表示,‘下一个参数是(e)xecute'.的脚本-nmeans, '*run the given script once per line*' - so-necan sort-of emulatesed`。
perl代码:
/^alias (.*)='ssh -i (.*) -o (.*) (.*)\@(.*)'/ and
print qq{Host \$1\nHostName \$5\nIdentityFile \$2\n\n}读取:仅对于与正则表达式/^alias ../匹配的行,打印一个字符串(qq{...}与Perl中的"..."相同),插值变量"\$1"、"\$4"等都是在正则表达式中捕获的结果。
perl -ne需要来自< ~/.bash_aliases的输入。
https://stackoverflow.com/questions/13654876
复制相似问题