如何在 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")
}
我正在使用 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")
}