子进程的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)
})