在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中运行。