如何在 Rust 中调用 `cd`?

how to make `cd` call in Rust?

我正在使用 Rust 编写命令行工具。当我执行我的 Rust 命令行工具时,我想 cd 到想要的字典。

我用env::set_current_dir(path),但是没用。之后我用nix,调用nix::unistd::chdir(path),也没用

那么如何才能达到修改命令字典的目的呢?如何在 Rust 中进行 cd 调用。

这不是直接可能的 - Rust 程序只能影响它自己的环境,而不是你的 shell。您可以定义一个 shell 函数,它使用 Rust 程序的输出来执行某些操作,例如

# bash
mycd() {
    cd "$(command myrustprogram)"
}
// main.rs
fn main() {
    println!("/some/path")
}