rust执行shell命令
使用rust执行shell命令
参考rust doc:rust doc :Command命令
(1)没有参数的命令
shell命令:
#: ls
rust 代码实现 main.rs:
use std::process::Command; // 引入命令模块
let output = Command::new("ls").output().expect("执行异常,提示");
let ls_list = String::from_utf8(output.stdout);
(2)带参数的命令
shell命令:
ls -l -a
rust 代码实现带参数命令,需要使用sh -c
rust代码实现 main.rs:
use std::process::Command;
let output = Command::new("sh").arg("-c").arg(" -l -a").output().expect("命令执行异常错误提示");
let ls_la_list = String::from_utf8(output.stdout);
(3)一个命令,多个参数分开执行
shell命令:
ls ./
ls /
rust代码实现不同参数分开执行,需要output为可变变量
use std::process::Command;
let mut output = Command::new("ls");
// 列出当前目录下文件
output.status().expect("程序执行失败提示"); // 当前目录无需切换,直接执行
// 列出/目录下文件
output.current_dir("/"); // 切换到/目录
list_dir.status().expect("程序执行失败提示"); // 开始执行
(4)命令插入环境变量
use std::process::Command;
Command::new("ls").env("PATH","/bin").spawn().expect("命令执行异常提示");
(5)命令移除环境变量
use sdt::process::Command;
Command::new("ls").env_remove("PATH").spawn().expect("命令执行异常提示");
(6)清除程序中所有环境变量
use sdt::process::Command;
Command::new("ls").env_clear().spawn().expect("命令执行异常提示");