[devel] Передача аргумента с пробелом внутри
Dmitry V. Levin
ldv на altlinux.org
Чт Июл 1 22:31:14 UTC 2010
On Mon, Jun 23, 2008 at 02:56:33AM +0400, Dmitry V. Levin wrote:
> On Mon, Jun 23, 2008 at 02:44:03AM +0400, Vitaly Lipatov wrote:
> > On 23 июня 2008, Dmitry V. Levin wrote:
> > > On Mon, Jun 23, 2008 at 02:11:45AM +0400, Vitaly Lipatov wrote:
> > > > Пытаюсь передать --define='_source_payload w9.gzdio' в
> > > > rpmbuild и по дороге аргумент разрывается на две части по
> > > > пробелу. Пример скрипта приложен
> > >
> > > Вот что там происходит, на более простом примере:
> > >
> > > $ rpmbuild -bs "--define='_source_payload w9.gzdio' --nodeps"
> > > /dev/null ошибка: Недопустимое имя (%define) макроса %
> > > ошибка: Недопустимое имя (%define) макроса %
> > > ошибка: Не обычный файл: /dev/null.
> > Да. Осталось понять, возможно ли передать в функцию shell
> > параметры в сохранности, или нет.
>
> Конечно, но сперва надо уловить, как работает квотирование в shell;
> см. напр. bash(1) про QUOTING.
> В /bin/shell-quote есть готовый инструмент для более сложных случаев.
Наглядный пример реализации с использованием shell-quote:
$ gear-rpm -bp --define='_source_payload w9.gzdio'
--
ldv
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя : отсутствует
Тип : application/pgp-signature
Размер : 198 байтов
Описание: отсутствует
Url : <http://lists.altlinux.org/pipermail/devel/attachments/20100702/a3fe9753/attachment.bin>
Подробная информация о списке рассылки Devel