È possibile utilizzare child process api per eseguire lo script di shell in node.js.Utilizzo di bash con child_process Node.js che utilizza l'opzione shell non riuscita
Im utilizzando il child_process.exec (comando [opzioni], callback) funzione
come opzione l'utente del exec può impostare la shell: '/ path/to/shell' campo per selezionare la shell da utilizzare. (Predefinito a '/ bin/sh')
L'impostazione delle opzioni su {shell: '/ bin/bash'} non rende eseguibile il comando exec con bash.
Ho verificato questo emettendo il comando "echo $ 0" che stampa "/ bin/sh".
Come posso utilizzare bash con child_process.exec tramite l'opzione shell?
(il mio obiettivo è di fare uso delle mie definizioni di percorso in bashrc, ora quando provo a utilizzare grugnito il binario non può essere trovato. Impostazione del CWD, directory di lavoro corrente nelle opzioni di opere del dizionario come previsto)
----------------- UPDATE, ad esempio
'use strict';
var cp = require('child_process');
cp.exec('echo $0', { shell: '/bin/bash' }, function(err, stdout, stderr){
if(err){
console.log(err);
console.log(stderr);
}
console.log(stdout);
});
uscita:
/bin/sh
which bash
stampe: /bin/bash
In effetti, sembra che l'OP si trovi su una versione precedente di Nodo in cui non è supportato (ho avuto lo stesso problema) – Yousef