我試圖創建一個構建腳本的一部分,該腳本創建一個包含有關git repo的信息的文件。我如何獲得2+命令的結果作爲字符串。使用bash/node檢索命令輸出
var fs = require('fs');
var exec = require('child_process').exec;
var cmd = 'echo $(git rev-parse --abbrev-ref HEAD)|$(git log -1 --format=%cd)|$(git rev-parse HEAD)';
exec(cmd, function(error, stdout, stderr) {
fs.writeFile("src/test.js", stdout, function(err) {
if(err) return console.log(err);
console.log(stdout);
});
});
我知道問題出在我的cmd
。我只是不知道它應該看起來像什麼樣的字符串<branch>|<date>|<commit-hash>
該命令如果我直接在我的終端中運行它的作品。如果我把它放在我的腳本中並運行它,'node write_git_info.js',它就不起作用。它直接在文件中放入''($ git rev-parse --abbrev-ref HEAD)| $(git log -1 --format =%cd)| $(git rev-parse HEAD)「。沒有eval正在發生。 – David
按照@chepner的說法,只輸出最後一條命令。我正在尋找一些字符串連接。 – David
是的,你說得對,我很快採納@ chepner的方法。我回復了我的答案的一部分。我剛剛在'node' REPL中嘗試過,它的工作原理與上面所述完全相同。 –