Можно ли получить необработанный ввод process.argv в NodeJS? - PullRequest
0 голосов
/ 07 декабря 2018

Мне нужно переслать необработанный NodeJS process.argv дочернему процессу.Проблема, с которой я сталкиваюсь, заключается в том, что process.argv удаляет кавычки из исходных аргументов.

Допустим, на моей машине есть следующие исполняемые файлы:

  • / some / random / path/ bin / executetable1;
  • / some / random / path / bin / executetable2;
  • / some / random / path / bin / executetable3;

Я являюсьиспользуя Node для создания псевдонимов для них.

  • alias.js executable1
  • alias.js executable2
  • alias.js executable3

Теперь давайтеПредположим, я выполняю alias.js executable1 -c"this is my input".process.argv возвращает:

[ '-cthis is my input']

Это делает невозможным передачу аргументов в том виде, в котором они были введены изначально.Можно ли получить доступ к необработанному вводу через NodeJS?

1 Ответ

0 голосов
/ 07 декабря 2018

Это делается оболочкой перед передачей ввода приложению.Кавычки используются для предотвращения интерпретации оболочкой пробелов как указания на то, что следующая строка является новым параметром.

В зависимости от используемой вами оболочки, вы можете экранировать кавычки с помощью \.Однако в вашем примере вам нужны кавычки вокруг вашего ввода, чтобы обернуть ваш параметр, так как он содержит пробелы.Вы можете избежать любых кавычек, найденных в вашей строке, с помощью \ и просто предположить, что значение, данное параметру, всегда заключено в кавычки, и это не будет неправильным.

Трудно представить сценарий, в котором вам нужнокавычки, поскольку они уже выполнили свою задачу обеспечения того, чтобы все значение было передано в правильной позиции параметра.

...