我想使用 C 程序将包含 & 符号的 url 传递给 shell 脚本。所以我必须创建 url 字符串并使用系统调用将它传递给 shell 脚本。在 C 中制作字符串时如何转义 & 字符?要传递给脚本,我必须转义符号。如何做呢?它尝试了\&。但是它抛出了错误
最佳答案
您需要将 \&
传递给 shell。
如果你尝试
"echo \&\n"
在 C 端,由于 \&
不是有效的转义序列,您会从编译器中得到一个错误。您真正需要从 C 端转义的是反斜杠:
例如试试这段代码:
printf("echo \\&\n");
您会看到打印了 \&
(因此它也可以通过 system
调用工作),这似乎是您想要的。
另一种仅适用于类 unix shell 的方法是用单引号保护参数:
printf("echo '&'\n");
请注意,它在 Windows 中不起作用,因为 Windows 不会将单引号视为引号。
在任何地方都适用的东西:用(转义的)双引号保护:
printf("echo \"&\"\n");
关于c - 如何在 C 编程中转义 & 字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47078031/