gpt4 book ai didi

ruby - 通过 Ruby 系统调用通过 SSH 发送美元符号

转载 作者:数据小太阳 更新时间:2023-10-29 08:18:49 24 4
gpt4 key购买 nike

我正在尝试对服务器进行 SSH 系统调用并回显一个字符串。该字符串由 ruby​​ 定义并带有美元符号。

#!/usr/bin/env ruby
string = '$$%%$#@%$#@%325dg345345'

puts %x(ssh server "echo \'#{string}\'")

当我执行时,返回的输出不是字符串。远程服务器将美元符号解释为变量。我可以采取任何形式的巧妙转义来防止这种情况发生吗?字符是随机的,因此仅编辑字符串以转义美元符号是行不通的。

最佳答案

您可以使用标准库的 Shellwords库不仅可以转义美元符号,还可以转义空格和您的字符串可能包含的任何其他“危险”字符:

require 'shellwords'

string = '$$%%$#@%$#@%325dg345345'
escaped_string = Shellwords.escape(string)
# "\\$\\$\\%\\%\\$\\\#@\\%\\$\\\#@\\%325dg345345"

puts %x(ssh server "echo #{string}")

关于ruby - 通过 Ruby 系统调用通过 SSH 发送美元符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12738025/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com