【发布时间】:2021-01-16 10:59:25
【问题描述】:
在 Java 和 C++ 中,参数都由 ' 包裹:
system("cmd arg1 arg2");// C++
Runtime.getRuntime().exec("cmd arg1 arg2");// Java
new ProcessBuilder("cmd","arg1","arg2").start();// Java
//=============== output
cmd 'arg1' 'arg2'
这可以防止参数被解释为通配符,例如:l* 将被解释为“lstar”而不是“l{everything-is-possible}”
另外,如果我添加一个 ' ,它将转换为 \'
如何通过这些编程语言传递通配符?
【问题讨论】:
-
处理通配符的是shell——如果你不调用shell,就没有人处理通配符
-
是的,谢谢你,我必须运行"Runtime.getRuntime().exec("bash -c cmd arg1 arg2");。你可以回答我会接受的