Чтобы выполнить команду без использования терминала в Rust, вы можете использовать структуру `std::process::Command`. Вот пример, как выполнить команду `ls -l`:
```rust
use std::process::Command;
fn main() {
let output = Command::new("ls")
.arg("-l")
.output()
.expect("Не удалось выполнить команду");
if output.status.success() {
let output_string = String::from_utf8_lossy(&output.stdout);
println!("{}", output_string);
} else {
let error_string = String::from_utf8_lossy(&output.stderr);
eprintln!("Ошибка выполнения команды: {}", error_string);
}
}
```
Чтобы запустить двоичные файлы (.exe) в приложении Tauri GUI и видеть окна терминалов в режиме dev, вы можете использовать функцию `std::process::Command::spawn`. Вот пример, как запустить команду `cargo run`:
```rust
use std::process::{Command, Stdio};
fn main() {
let output = Command::new("cargo")
.arg("run")
.stdout(Stdio::piped())
.spawn()
.expect("Не удалось запустить команду");
// Получение вывода команды
let output = output.wait_with_output()
.expect("Не удалось получить вывод команды");
if output.status.success() {
let output_string = String::from_utf8_lossy(&output.stdout);
println!("{}", output_string);
} else {
let error_string = String::from_utf8_lossy(&output.stderr);
eprintln!("Ошибка выполнения команды: {}", error_string);
}
}
```
Обратите внимание, что вам может потребоваться добавить необходимую зависимость в ваш файл `Cargo.toml`. Например, для использования `std::process::Command`, вы должны добавить `use std::process;` в начало файла.