在我的.bashrc
中包含此行后,我收到意外的文件错误结束alias domsrv01='echo -e ?HT_R8\'% | xclip ; ssh 10.50.0.35'
从echo到xclip的所需退出是:
?HT_R8' %
正如您可能猜到的,这是一个密码,我无法改变它:
如何从密码中转义单引号字符以修复EOF错误?
另外,我不确定单引号是否是这里唯一的问题,可以“?”和“%”也有趣地解释?
答案 0 :(得分:1)
你无法直接在bash中用单引号转义单引号。但是,由于bash连接相邻的字符串,因此您可以使用此结构'text'"'"'moretest'
。实际上,您只需使用单引号结束单引号字符串,然后立即添加双引号单引号,后跟剩余的字符串(单引号)。在您的具体示例中,命令如下所示:
alias domsrv01='echo -e ?HT_R8\'"'"'% | xclip ; ssh 10.50.0.35'
有关此主题的更多讨论可以在此处进行:How to escape single-quotes within single-quoted strings?
编辑:添加@GordonDavisson注意到的缺失反弹
答案 1 :(得分:1)
别名用于短文本替换,而不是完整的shell命令。使用功能:
domsrv01 () {
echo -e ?HT_R8\'% | xclip ; ssh 10.50.0.35
}