var sys = require('sys'),
exec = require('child_process').exec;
exec("cd /home/ubuntu/distro", function(err, stdout, stderr) {
console.log("cd: " + err + " : " + stdout);
exec("pwd", function(err, stdout, stderr) {
console.log("pwd: " + err + " : " + stdout);
exec("git status", function(err, stdout, stderr) {
console.log("git status returned " ); console.log(err);
})
})
})
cd: null :
pwd: null : /
git status returned
{ [Error: Command failed: fatal: Not a git repository (or any of the parent directories): .git ] killed: false, code: 128, signal: null }
nodeJS execは、「cd」シェルコマンドでは機能しません。以下に示すように、pwdは機能しますが、gitステータスは機能しますが、gitディレクトリで実行されないため失敗しますが、cd cmdは失敗し、他のcmdの実行はそれ以上成功しません。nodeJSシェルとnodeJS + ExpressJSウェブサーバーで試してみました。
各コマンドは個別のシェルで実行されるため、最初のコマンドはcd
そのシェルプロセスにのみ影響し、その後シェルは終了します。git
特定のディレクトリで実行したい場合は、ノードにパスを設定させるだけです:
exec('git status', {cwd: '/home/ubuntu/distro'}, /* ... */);
cwd
(現在の作業ディレクトリ)は、で使用できる多くのオプションのexec
1つです。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加