在node.js中获取原始的命令行参数

如何获取node.js应用程序中的原始命令行参数,给出以下示例命令:

node forwardwithssh.js echo "hello arguments"

process.argv将会是[ "node", "/path/to/forwardwith.js", "echo", "hello arguments" ]

而且没有办法重构原来的echo "hello arguments" (即join(" "不会把引号放回去)。我想要整个原始的原始string在脚本名字后面。

我想要的是很容易获得与"$*" bash脚本,是否有任何等同的方式来获得在node.js?

注意:特别的意图是接收一个命令在其他地方执行(例如通过ssh)

将每个参数用单引号括起来,并将每个参数中的单引号转义为'\''

 var cmd_string = process.argv.map( function(arg){ return "'" + arg.replace(/'/g, "'\\''") + "'"; }).join(' '); 

这会给你一个cmd_string包含:

 'node' '/path/to/forwardwith.js' 'echo' 'hello arguments' 

这可以直接在另一个shell中运行。