在 Java 中向 SSH 服务器发送命令 (Jsch) 时,如何转义双引号而不获取 "quot"?
How do I escape double quotes and NOT get "quot" when sending a command (Jsch) to an SSH server in Java?
我已经无计可施了,想弄清楚一些应该很简单的事情。在尝试了我在 Google 上阅读的几乎所有内容之后,我仍然没有弄明白。我有一个 Android 应用程序,它使用 JSCH 连接到处理各种命令的 SSH 服务器。连接很好,我可以 运行 命令,只是不能用双引号引起来。我想在远程机器上 运行 的命令是:
start "" "scriptname" "variable"
注意:开始后的“”为必填项。
在我的 Android 应用程序中,命令作为字符串发出(setCommand 仅采用字符串或字节),其中:
ChannelExec exec_channel=(ChannelExec) session.openChannel("exec");
BufferedReader in=new BufferedReader(new InputStreamReader(exec_channel.getInputStream()));
exec_channel.setCommand("start \"\" \"scriptname\" \"variable\"");
经过多次尝试,例如简单地以正常方式转义双引号(即 \"\"),将双引号存储在 char 中并调用它,并将其存储在字节中,我仍然无法得到接收 SSH 服务器以获取双引号。
检查 SSH 服务器日志后,发现 SSH 服务器正在接收 "quot;" 而不是双引号。如何在不将双引号 Android 解析为 "quot;" 的情况下转义双引号并在 SSH 服务器上正确接收它?
我忘记了这个问题,只是记得更新,所以张贴我的答案以防其他人 运行 进入这个问题。不幸的是,我对实际问题的看法是错误的。事实证明,我在 Jsch 中的 "setCommand" 使用 URL 编码可以正常工作,问题是 运行 的脚本(即无法进行任何 GUI 更改) .在更新脚本以简单地回显一个文本文件后,结果发现脚本实际上是 运行.
至于为什么我的日志中出现 "quot;",我认为这是问题所在,因为它是 SSH 日志中唯一出现的奇怪内容,但我开始意识到它是只是 SSH 服务器解析字符串而不是解释它的方式(换句话说,SSH 服务器在记录时将其保存为纯文本——正如它应该的那样)。
我已经无计可施了,想弄清楚一些应该很简单的事情。在尝试了我在 Google 上阅读的几乎所有内容之后,我仍然没有弄明白。我有一个 Android 应用程序,它使用 JSCH 连接到处理各种命令的 SSH 服务器。连接很好,我可以 运行 命令,只是不能用双引号引起来。我想在远程机器上 运行 的命令是:
start "" "scriptname" "variable"
注意:开始后的“”为必填项。
在我的 Android 应用程序中,命令作为字符串发出(setCommand 仅采用字符串或字节),其中:
ChannelExec exec_channel=(ChannelExec) session.openChannel("exec");
BufferedReader in=new BufferedReader(new InputStreamReader(exec_channel.getInputStream()));
exec_channel.setCommand("start \"\" \"scriptname\" \"variable\"");
经过多次尝试,例如简单地以正常方式转义双引号(即 \"\"),将双引号存储在 char 中并调用它,并将其存储在字节中,我仍然无法得到接收 SSH 服务器以获取双引号。
检查 SSH 服务器日志后,发现 SSH 服务器正在接收 "quot;" 而不是双引号。如何在不将双引号 Android 解析为 "quot;" 的情况下转义双引号并在 SSH 服务器上正确接收它?
我忘记了这个问题,只是记得更新,所以张贴我的答案以防其他人 运行 进入这个问题。不幸的是,我对实际问题的看法是错误的。事实证明,我在 Jsch 中的 "setCommand" 使用 URL 编码可以正常工作,问题是 运行 的脚本(即无法进行任何 GUI 更改) .在更新脚本以简单地回显一个文本文件后,结果发现脚本实际上是 运行.
至于为什么我的日志中出现 "quot;",我认为这是问题所在,因为它是 SSH 日志中唯一出现的奇怪内容,但我开始意识到它是只是 SSH 服务器解析字符串而不是解释它的方式(换句话说,SSH 服务器在记录时将其保存为纯文本——正如它应该的那样)。