因此,當我使用 std::process::Command 在 linux 終端中運行命令時出現此錯誤。代碼的一部分是:
use std::process::Command;
fn main() {
let mut playmusic = "mpv https://www.youtube.com/watch?v=kJQP7kiw5Fk";
let status = Command::new(playmusic).status().expect("error status");
}
上面的命令代碼,我在 rust docs找到。我嘗試了檔案中的所有內容,但沒有一個像使用等待命令那樣作業。
每次我得到這個錯誤:
thread 'main' panicked at 'error status: Os { code: 2, kind: NotFound, message: "No such file or directory" }', src/main.rs:46:63
由于該錯誤表明找不到該命令,因此我在終端中運行了它,但它在那里成功運行。但是,當在 std::process::Command 中使用它時,它會失敗。
uj5u.com熱心網友回復:
它失敗了,因為你用錯了。你想mpv用引數執行程式https://...,但你現在告訴 rust 運行程式mpv https://...,這當然不存在。將引數傳遞給程式使用arg或argsCommand的方法。
所以你的例子可以這樣修復:
use std::process::Command;
fn main() {
let url = "https://www.youtube.com/watch?v=kJQP7kiw5Fk";
let status = Command::new("mpv")
.arg(url)
.status()
.expect("Failed to run mpv");
}
如果您想知道為什么要這樣設計,那是因為 rust 會呼叫其中一個exec系統呼叫。請參閱exec(3)以了解其作業原理。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/512249.html
標籤:壳锈命令行界面性病mpv
