[devel] build -m & spaces;
Ivan Zakharyaschev
imz на altlinux.org
Пн Фев 10 12:12:49 MSK 2020
On Mon, 10 Feb 2020, Alexey V. Vissarionov wrote:
> On 2020-02-10 10:01:42 +0300, Ivan Zakharyaschev wrote:
>
> > Похожий эффект можно наблюдать при обычном использовании ssh:
> > $ ssh 0 echo 'a b c'
> > a b c
> > Куда делись пробелы?..
> > shell на той стороне разбил команду на слова по пробелам.
> > Так что чтобы надёжно передать значение для build -m как один
> > аргумент, лучше не использовать в нём пробелы.
> > Уже обсуждалось в этом списке рассылки.
>
> Вы таки сильно удивитесь, но:
>
> % ssh ::1 echo "'a b c'"
> a b c
> Connection to ::1 closed.
>
> Или я неправильно понял, в чем состоит задача?
Я пытался объяснить причину происходящего. Можно ещё сказать так: те
одинарные кавычки, которые написаны в команде ssh 0 echo 'a b c'
обрабытвааются shell-ом на этой стороне, потом ssh склеивает все аргументы
в одну строку и передаёт это как команду shell-у на той стороне.
Вот это я хотел продемонстрировать.
У shell-а на той стороне уже нет следов того, что вы пытались
"сгруппировать" в один аргумент.
Умеет ли он обрабатывать кавычки, если они всё же до него добрались,
отдельный вопрос. Зависит от shell-а на той стороне.
Но первой части (т.е. моего ответа) вроде уже достаточно, чтобы понять,
что интерфейс, которым можно было бы пользоваться в точности так, как
пытался автор вопроса, невозможно реализовать.
А с поправками, как у тебя в примере -- может быть. Тут я не удвивлюсь.
Особенно не удвилюсь, если на той стороне POSIX shell или т.п.
--
Best regards,
Ivan
Подробная информация о списке рассылки Devel