是否可以在NodeJS中获取原始的process.argv输入

时间:2018-12-07 18:17:29

标签: node.js argv

我需要将原始NodeJS process.argv转发到子进程。我遇到的问题是process.argv正在删除原始参数中的引号。

假设我的计算机上有以下可执行文件:

  • / some / random / path / bin / executable1;
  • / some / random / path / bin / executable2;
  • / some / random / path / bin / executable3;

我正在使用Node为其创建别名。

  • alias.js executable2
  • alias.js executable3
  • alias.js executable1 -c"this is my input"

现在,让我们假设我执行process.argv[ '-cthis is my input']返回:

JSON

这使我无法传递最初输入的参数。可以通过NodeJS访问原始输入吗?

1 个答案:

答案 0 :(得分:1)

这是在输入提交给应用程序之前由外壳程序完成的。引号用于防止shell将空格解释为表示下一个字符串是新参数。

根据您所使用的外壳,您可能可以使用\转义引号。但是,在您的示例中,您需要在输入周围加上引号,以将参数包装起来,因为它包含空格。您可以使用\来转义在字符串中找到的所有引号,而只需假定赋予该参数的值总是用引号引起来,那不会错。

很难想象您需要使用引号的情况,因为它们已经达到了确保将整个值传递到正确的参数位置的目的。

相关问题