使用 sshpass 时如何转义单引号

Posted

技术标签:

【中文标题】使用 sshpass 时如何转义单引号【英文标题】:how to escape the single quotes when use sshpass 【发布时间】:2016-11-30 07:07:46 【问题描述】:

通过网关远程 ssh

sshpass -p gatewaypwd -t user@gateway sshpass -p targetpwd ssh user2@target 这是原始命令,我把它放在我的别名中。它运行良好。 但现在目标主机的密码包含单引号 比如

sshpass -p gatewaypwd -t user@gateway sshpass -p target'pwd ssh user2@target 该命令无法正常运行。 我确实尝试通过\'\\\' 和其他方法来逃避它,但都没有成功。 如何转义引号。

【问题讨论】:

Stack Overflow 是一个编程和开发问题的网站。这个问题似乎离题了,因为它与编程或开发无关。请参阅帮助中心的What topics can I ask about here。也许Super User 或Unix & Linux Stack Exchange 会是一个更好的提问地方。另见Where do I post questions about Dev Ops? 【参考方案1】:
    将密码存储在文本文件中 使用sshpass -f <filename> ssh user@IP_ADDR

它将从文件中获取密码。我已经用空格试过了,效果很好。

【讨论】:

【参考方案2】:

在密码两边使用双引号。

【讨论】:

以上是关于使用 sshpass 时如何转义单引号的主要内容,如果未能解决你的问题,请参考以下文章

如何阻止 Swift 在我的 [String] 中注入转义的单引号?

存储过程中执行sql语句时如何转义双引号?

如何在使用 jooq 创建查询字符串时转义单引号?

如何在 JavaScript 函数中使用单引号(撇号)转义 JSON 值

shell中单引号怎么转义

在空手道 DSL 中,如何在 java 参数调用中传递变量时转义单引号