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

时间:2014-07-21 20:26:57

标签: node.js

如何在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)

1 个答案:

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