5 个版本
0.1.4 | 2024 年 6 月 28 日 |
---|---|
0.1.3 | 2024 年 6 月 28 日 |
0.1.2 | 2024 年 6 月 28 日 |
0.1.1 | 2024 年 6 月 28 日 |
0.1.0 | 2024 年 6 月 28 日 |
#346 在 命令行界面 中
每月 40 次下载
13KB
191 行
command_runner
command_runner
是一个跨平台的 Rust crate,专为交互式执行终端命令而设计。它将各种功能封装在一个结构体中以提供无缝的命令执行体验。
主要功能
- 执行命令行指令:在您的 Rust 应用程序中运行任何命令行指令。
- 检查命令执行状态:确定命令是否成功执行。
- 获取命令输出:检索命令的实时输出,类似于您在终端中看到的内容。
- 处理用户输入:如果正在运行的命令需要用户输入,该 crate 提供了一种在捕获命令输出同时轻松输入数据的方法。
- 跨平台兼容性:在不同平台之间无缝工作,包括 Linux、macOS、Windows 以及 Android 等移动平台。
安装
将以下内容添加到您的 Cargo.toml
[dependencies]
command_runner = "*"
使用示例
use anyhow::Result;
use command_runner::CommandRunner;
fn main() -> Result<()> {
let mut runner = CommandRunner::new("echo Hello, World!", 1024)?;
// Check if the command was executed successfully
if runner.get_status() == CommandStatus::Terminated {
println!("Command executed successfully!");
}
// Get the command output
while let Some(output) = runner.get_output() {
println!("Command output: {}", output);
}
// Handle user input
runner.execute("read -p 'Enter your name: ' name && echo \"Hello, $name\"")?;
runner.provide_input("John Doe\n")?;
// Get the final output
while let Some(final_output) = runner.get_output() {
println!("Final output: {}", final_output);
}
Ok(())
}
文档
有关更详细的用法说明和 API 文档,请访问 docs.rs。
贡献
我们欢迎问题和拉取请求。对于重大更改,请首先打开一个问题以讨论您想更改的内容。
许可
此 crate 可在以下任一许可证下使用
- Apache 许可证 2.0 版 (http://www.apache.org/licenses/LICENSE-2.0)
- MIT 许可证 (http://opensource.org/licenses/MIT)
选择最适合您需求的许可证。
依赖
~3.5MB
~121K SLoC