我试图了解为什么Err()
使用bash -c
表达式运行命令时没有得到结果。
这是一个示例,下面是输出。我希望out2
和out3
是一个Err()
,但是out3
是一种Ok()
与失败的状态。
我bash -c
用来从给定的字符串执行命令,这很容易。
可以Err()
使用bash -c
语法获得结果吗?
#![allow(unused)]
use std::process::{Command, Output};
fn main() {
let out1 = Command::new("bash").arg("-c").arg("ls").output();
println!("out1: {:?}", out1);
let out2 = Command::new("wrongcommand").arg("-c").arg("ls").output();
println!("out2: {:?}", out2);
let out3 = Command::new("bash").arg("-c").arg("wrongcommand").output();
println!("out3: {:?}", out3);
}
Run Code Online (Sandbox Code Playgroud)
输出:
out1: Ok(Output { status: ExitStatus(ExitStatus(0)), stdout: "Cargo.lock\nCargo.toml\ncrate-information.json\nsrc\ntarget\n", stderr: "" })
out2: Err(Os { code: 2, kind: NotFound, message: "No such file or directory" …
Run Code Online (Sandbox Code Playgroud)