0

我有以下执行良好的 rust 例程:

use std::process::Command;
fn main() {
    let out = Command::new("iwconfig")
        .arg("wlan0")
        .output()
        .expect("Failed to execute 'iwconfig'");

    println!("status:\n {}", out.status);
    println!("stdout:\n {}", String::from_utf8_lossy(&out.stdout));
    println!("stderr:\n {}", String::from_utf8_lossy(&out.stderr));
}

iwconfig它只是在 linux 中以wlan0适配器为目标打印命令的结果。该程序的输出很好。

我的目标是让用户手动输入适配器。如果我执行以下程序并wlan0在提示时手动输入:

use std::process::Command;

fn main() {
    let mut adapter_input = String::new();
    println!("{}", "Enter adapter name:");
    io::stdin().read_line(&mut adapter_input).unwrap();

    let out = Command::new("iwconfig")
        .arg(adapter_input)
        .output()
        .expect("Failed to execute 'iwconfig'");

    println!("status:\n {}", out.status);
    println!("stdout:\n {}", String::from_utf8_lossy(&out.stdout));
    println!("stderr:\n {}", String::from_utf8_lossy(&out.stderr));
}

我得到以下输出:

wlan0 状态:退出代码:237 标准输出:标准错误:wlan0 没有这样的设备

我究竟做错了什么?为什么硬编码时找到适配器但手动输入时找不到?

4

0 回答 0