这是一个例子。我将尝试使用Rust程序包装scp:
fn spawn_scp(host: &str, path: &str) -> std::process::Output {
let a = vec![format!("{}:{}",host, path), format!("{}-gc.log",host)];
let output = Command::new("scp")
.args(&a)
.output()
.ok().expect("Failed to execute.");
return output;
}
如果我传入了未知的主机和某些路径,则scp应该给我主机的密钥指纹,然后要求我输入密码,密码确实如此:
Are you sure you want to continue connecting (yes/no)
它使我输入“是”并继续。但来自std::process::Command docs:
Stdin不是从父级继承的,子进程尝试从stdin流中读取数据将导致该流立即关闭。
为什么它让我输入“是”而不是关闭?