Хорошо, это сводит меня с ума:
`ls #{"/media/music/Miles Davis"}`
терпит неудачу из-за пробела между «Майлзом» и «Дэвисом»
Скажем, я пишу сценарий ruby, и пользователь передает путь к файлу в качестве аргумента . Как мне избежать этого и передать команду оболочки. Да, да, я знаю, обстрелов следует избегать. Но это надуманный пример, он мне все еще нужен.
Я бы сделал system ("ls", ARGV [0])
, но он не возвращает вывод stdout ls в виде строки , что хорошо подходит для обратных кавычек.
Как избежать того, что вы вставляете в оболочку?