rsh 命令正在删除远程 shell 中的双引号。
例如:我的命令 rsh 10.20.1.25 my_pgm -g "NAME1 NAME2" 在远程 shell my_pgm -g NAME1 NAME2
我也想要远程 shell 中的 -g 选项的双引号。任何的想法?
要在字符串中转义双引号,请使用反斜杠:
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\\\"");