我有以下执行良好的 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 没有这样的设备
我究竟做错了什么?为什么硬编码时找到适配器但手动输入时找不到?