我想在Rust中执行一个shell命令.在Python中,我可以做到:
import os
cmd = r'echo "test" >> ~/test.txt'
os.system(cmd)
但 rust 只有std::process::Command
个.如何执行cd xxx && touch abc.txt
这样的shell命令?
我想在Rust中执行一个shell命令.在Python中,我可以做到:
import os
cmd = r'echo "test" >> ~/test.txt'
os.system(cmd)
但 rust 只有std::process::Command
个.如何执行cd xxx && touch abc.txt
这样的shell命令?
你应该避免system
.它的功能取决于使用的是什么shell以及您使用的是什么操作系统(您的示例几乎肯定不会达到您在Windows上期望的效果).
如果你真的想用一个shell调用一些命令,那么直接执行shell(比如使用bash的-c
switch )就可以做得更好.
如果,由于某种原因,上述方法不可行,那么你可以guarantee你的程序将在有问题的shell可用的系统上运行,and个用户will not将运行其他任何东西...
...然后你可以像普通C一样使用libc
的system
个电话.这算作FFI,所以你可能想看看std::ffi::CStr
.