rsh正在删除双引号

时间:2014-06-20 09:36:21

标签: c rsh

rsh命令正在删除远程shell中的双引号。

例如: 我的命令 rsh 10.20.1.25 my_pgm -g" NAME1 NAME2" 在远程shell中 my_pgm -g NAME1 NAME2

我也希望在远程shell中使用-g选项的双引号。有什么想法吗?

1 个答案:

答案 0 :(得分:1)

要在字符串中转义双引号,请使用反斜杠:

rsh 10.20.1.25 my_pgm -g "\"NAME1 NAME2\""
  

实际上,我的C程序就像这个sprintf(cmd_string,“rsh   10.20.1.25 my_pgm -g \“NAME1 NAME2 \”“);

好的,您的意思是使用system(),请参阅echo上的输出:

#include <stdlib.h>

int main(void)
{
    system("echo \"NAME1 NAME2\""); /* output: NAME1 NAME2 */
    system("echo '\"NAME1 NAME2\"'"); /* output: "NAME1 NAME2" */

    return 0;
}

翻译成你的(注意NAME1 NAME2周围的单引号和双引号):

sprintf(cmd_string, "rsh 10.20.1.25 my_pgm -g '\"NAME1 NAME2\"'");

或者正如@nos指出的那样:

sprintf(cmd_string, "rsh 10.20.1.25 my_pgm -g \\\"NAME1 NAME2\\\"");