Golang:Chdir并在程序终止时留在那里

Seb*_*oli 2 go

在golang(以及bash脚本)中如果我更改当前工作目录(使用os.Chdir)它可以工作,但是当程序终止时,工作目录将重置为程序启动时的位置.

这是有道理的,但我想要做的是一个智能的磁盘导航器(类似于我们古老而深受喜爱的ncd,"Norton Change Directory").

如何告诉二进制文件(或启动它的shell,或其他什么)不要重置为以前的工作路径?

我想完全从Go二进制文件中实现,不需要修改.bashrc或.zshrc(为了便携性)

zzz*_*zzz 9

每个进程的工作目录都是进程私有的.

你必须跳循环来实现这一目标.例如,您的程序可以编写一个脚本(文件),该脚本可以在程序终止之后从调用程序的脚本中执行.

另一种不太常见的方法是:

$ cd $(prog)
Run Code Online (Sandbox Code Playgroud)

prog将新wd写入stdout.