如何在node.js应用中获取原始命令行参数, 给出这个示例命令:
node forwardwithssh.js echo "hello arguments"
process.argv
将为[ "node", "/path/to/forwardwith.js", "echo", "hello arguments" ]
并且无法从中重建原始echo "hello arguments"
(即。join(" "
不会重新引用)。
我想要脚本名称后面的整个原始原始字符串。
使用"$*"
在bash脚本中轻松获取我想要的内容,是否有任何等效方法可以在node.js中获取?
注意:特别意图是接收一个在其他地方执行的命令(例如,通过ssh)
答案 0 :(得分:4)
用单引号包装每个args,并将每个arg中的单引号转义为'\''
:
var cmd_string = process.argv.map( function(arg){
return "'" + arg.replace(/'/g, "'\\''") + "'";
}).join(' ');
这会给你一个cmd_string
包含:
'node' '/path/to/forwardwith.js' 'echo' 'hello arguments'
可以直接在另一个shell中运行。