rsh命令正在删除远程shell中的双引号。
例如: 我的命令 rsh 10.20.1.25 my_pgm -g" NAME1 NAME2" 在远程shell中 my_pgm -g NAME1 NAME2
我也希望在远程shell中使用-g选项的双引号。有什么想法吗?
答案 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\\\"");