При выполнении команды bash в узле и передаче параметра Dynami c, стандартный способ go - использовать spawn и избегать экранирования. То есть:
const filename = 'file with spaces'
spawn('ls', [filename]) // All good, received 'file with spaces'
Это надежно, поскольку имя файла передается в качестве отдельной переменной bash.
Теперь, что произойдет, если я захочу сделать то же самое через s sh ? Ниже приведена опция , а не :
const filename = 'file with spaces'
spawn('ssh', [host, 'ls', filename]) // Wrong!! Received 'file' 'with' 'spaces'
S sh принимает ls и filename в качестве vargars. Присоединение к нему и выполнение, которое побеждает цель.