передача аргументов в кавычки узлу через сценарий оболочки?

У меня есть текстовый файл, в котором каждая строка представляет собой список аргументов, которые я хочу передать в nodejs сценарий. Вот пример файла, file.txt:

"This is the first argument" "This is the second argument"

Для демонстрации сценарий узла выглядит просто:

console.log(process.argv.slice(2));

Я хочу запускать этот сценарий узла для каждой строки в текстовом файле, поэтому я создал этот сценарий bash, run.sh :

while read line; do
    node script.js $line
done < file.txt

Когда я запускаю этот сценарий bash, я получаю следующее:

$ ./run.sh 
[ '"This',
  'is',
  'the',
  'first',
  'argument"',
  '"This',
  'is',
  'the',
  'second',
  'argument"' ]

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

$ node script.js "This is the first argument" "This is the second argument"
[ 'This is the first argument',
  'This is the second argument' ]

Что здесь происходит? Есть ли более узкий способ сделать это?

5
задан Rafael 20 November 2011 в 22:42
поделиться