我需要将原始NodeJS process.argv转发到子进程。我遇到的问题是process.argv正在删除原始参数中的引号。
假设我的计算机上有以下可执行文件:
我正在使用Node为其创建别名。
alias.js executable2
alias.js executable3
alias.js executable1 -c"this is my input"
现在,让我们假设我执行process.argv
。 [ '-cthis is my input']
返回:
JSON
这使我无法传递最初输入的参数。可以通过NodeJS访问原始输入吗?
答案 0 :(得分:1)
这是在输入提交给应用程序之前由外壳程序完成的。引号用于防止shell将空格解释为表示下一个字符串是新参数。
根据您所使用的外壳,您可能可以使用\转义引号。但是,在您的示例中,您需要在输入周围加上引号,以将参数包装起来,因为它包含空格。您可以使用\来转义在字符串中找到的所有引号,而只需假定赋予该参数的值总是用引号引起来,那不会错。
很难想象您需要使用引号的情况,因为它们已经达到了确保将整个值传递到正确的参数位置的目的。