10

node.js でコマンド ライン ユーティリティを作成しようとしています。機能の 1 つとして、呼び出し元のシェルの現在の作業ディレクトリを変更する必要があります。のnode.jsバージョンのようなものcd。これを達成することは可能ですか?もしそうなら、どのように?

 


 

明確にするために、スクリプトを実行してターミナル ウィンドウの現在のディレクトリを変更できるようにしたいと考えています。

/some/path> ...
/some/path> nodecd /other/path
/other/path> ...

問題はprocess.chdir()、SHELL ディレクトリではなく、SCRIPT ディレクトリで機能することです。現在のシェルをbash呼び出しからノードスクリプトに渡し、スクリプト内でそのシェルのパスを変更できるようにする必要があります-サブシェルを作成しても問題は解決しません。

4

3 に答える 3

9

明確にするために、親プロセスの pwd を変更することはできません。ただし、作業ディレクトリを変更して、そのフォルダーでシェルを開始することもできます。


使用する必要がありますprocess.chdir()

console.log('Starting directory: ' + process.cwd());
try {
  process.chdir('/tmp');
  console.log('New directory: ' + process.cwd());
}
catch (err) {
  console.log('chdir: ' + err);
}

この例は、マニュアルから取得されます。ここでマニュアルを見つけることができます

于 2013-10-24T10:48:17.467 に答える