Come posso ottenere gli argomenti della riga di comando prime in un'applicazione node.js, dato questo comando di esempio:ottenere gli argomenti della riga di comando grezzo in node.js
node forwardwithssh.js echo "hello arguments"
process.argv
sarà [ "node", "/path/to/forwardwith.js", "echo", "hello arguments" ]
E non c'è modo di ricostruire l'originale echo "hello arguments"
da quello (ad esempio join(" "
non riporterà le virgolette). Voglio l'intera stringa originale grezza dopo il nome dello script.
quello che voglio è facilmente reperibile negli script di bash con "$*"
, esiste un modo equivalente per ottenerlo in node.js?
Nota: l'intenzione, in particolare, è quello di ricevere un comando da eseguire da qualche altra parte
Questo modulo dovrebbe essere in grado di fare ciò che si desidera: https://www.npmjs.org/package/minimist –
Non c'è modo di sapere se l'argomento originale è stato specificato come '" ciao argomenti "', '' ciao argomenti'' o 'ciao \ argomenti'. Sono tutti uguali in bash. Vuoi sempre presumere che un argomento con uno spazio fosse originariamente citato con virgolette doppie? È facile vedere che lo spazio deve essere stato sfuggito in qualche modo, perché si ottiene un arg invece di due per "argomenti ciao". – Paulpro
Puoi citare tutti i tuoi argomenti 'process.argv.map (function (arg) {return '"' + arg + '"';});'. Che ti darà: '" nodo "" forwardwithssh.js "" echo "" ciao argomenti "', che è esattamente lo stesso in bash del tuo comando originale. – Paulpro