Git HOME环境变量未与child-process.exec

时间:2016-04-06 17:47:03

标签: node.js ssh environment-variables exec child-process

子进程的exec()方法的第二个可选参数是具有env属性的选项对象。这应该为将要运行的可执行文件设置环境变量,但在某些情况下并非如此。

我要做的是将用于git的HOME变量设置为使用不同的路径,以便主机别名MY_SSH_HOST_ALIAS读取$HOME/.ssh/config文件并为该别名选择适当的密钥。我正在尝试这样做,因为我的系统的默认.ssh文件夹不在HOME中。

但是,以下内容失败并从$HOME/.ssh/

中读取默认密钥
const exec = require('child-process').exec

var succeeds = 'echo "my home is $HOME"' // prints my home is ~/mypath/
var fail = 'git clone MY_SSH_HOST_ALIAS:repo.git'

var options = { env: { HOME: '~/mypath/' } }

exec(fail, options, function(e, out, err) {
    console.out(e, out, err)
})

0 个答案:

没有答案