如何在Rust中执行请求输入的命令

如何在Rust中执行请求输入的命令,rust,command,command-line-interface,rust-2018,Rust,Command,Command Line Interface,Rust 2018,我正在使用Rust-2018构建CLI。这是一种对旧命令的包装。 我需要在我的Rust程序中调用该命令,但问题是该命令要求输入(密码)以执行任务 就像keytool一样,当需要生成密钥对时,它会提示您输入密码 我希望被调用的程序执行所有流,并且只知道程序是否成功结束 这是我迄今为止所做的,但没有预期的那样有效 使用std::process:{Command,Stdio}; 命令::新建(“…) .args(&[…] .stdout(Stdio::piped()) .spawn() .预期(“…)

我正在使用Rust-2018构建CLI。这是一种对旧命令的包装。 我需要在我的Rust程序中调用该命令,但问题是该命令要求输入(密码)以执行任务

就像keytool一样,当需要生成密钥对时,它会提示您输入密码

我希望被调用的程序执行所有流,并且只知道程序是否成功结束

这是我迄今为止所做的,但没有预期的那样有效

使用std::process:{Command,Stdio};
命令::新建(“…)
.args(&[…]
.stdout(Stdio::piped())
.spawn()
.预期(“…)

谢谢您的帮助!

只需像对待stdout一样使用管道stdin。然后使用
spawn()返回的
Child
对象获取子对象的stdin/out/err只需像对待stdout一样使用管道stdin。然后使用
spawn()返回的
Child
对象
获取孩子的标准输入/输出/错误