小编Jua*_*ias的帖子

使用'bash -c'时std :: process:Command不返回Err()结果

我试图了解为什么Err()使用bash -c表达式运行命令时没有得到结果。

这是一个示例,下面是输出。我希望out2out3是一个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)

bash command-line rust

4
推荐指数
1
解决办法
75
查看次数

标签 统计

bash ×1

command-line ×1

rust ×1