如何为该命令设置别名? (因为它有多个引号)
rsync -azv -e 'ssh -o "ProxyCommand ssh -A some@place -W %h:%p"' user@xxx:/data/as ~/
答案 0 :(得分:3)
只需使用单引号并将每个单引号替换为'\''
。
alias XYZ='rsync -azv -e '\''ssh -o "ProxyCommand ssh -A some@place -W %h:%p"'\'' user@xxx:/data/as ~/'
或者,使用函数代替别名
XYZ () {
rsync -azv -e 'ssh -o "ProxyCommand ssh -A some@place -W %h:%p"' user@xxx:/data/as ~/ "$@"
}
它更灵活,使您以后可以参数化命令。
答案 1 :(得分:0)
转义内部的双引号,并用双引号将所有引号引起来,因为您不能转义单引号,而只能转义双引号。 (听起来有点可笑)
alias foobar="rsync -azv -e 'ssh -o \"ProxyCommand ssh -A some@place -W %h:%p\"' user@xxx:/data/as ~/"
您可能要检查this答案。