2

golang(およびbashスクリプト)では、現在の作業ディレクトリを(os.Chdirで)変更すると機能しますが、プログラムが終了すると、作業ディレクトリはプログラムの開始時の場所にリセットされます。

それは理にかなっていますが、私がやりたいのは、インテリジェントなディスク ナビゲーター (古くて愛されている ncd、「Norton Change Directory」のようなもの) です。

バイナリ(またはそれを開始するシェルなど)に以前の作業パスにリセットしないようにするにはどうすればよいですか?

.bashrc または .zshrc (移植性のため) を変更せずに、Go バイナリ内から完全に実現したいと思います。

4

1 に答える 1

9

すべてのプロセスの作業ディレクトリはプロセス プライベートです。

これを実現するには、ループをジャンプする必要があります。たとえば、プログラムは、プログラムを呼び出したスクリプトから、プログラムの終了後に後で実行できるスクリプト (ファイル) を作成できます。

もう 1 つのハックではない方法は次のとおりです。

$ cd $(prog)

ここで、prog は新しい wd を stdout に書き込みます。

于 2013-06-10T14:37:17.917 に答える