[Comm] bash trouble

Andrew Fefilov =?iso-8859-1?q?faqa_=CE=C1_blok-caf=2Eru?=
Пт Май 7 11:38:03 MSD 2004


On Fri, May 07, 2004 at 11:12:40AM +0400, Valery V. Inozemtsev wrote:
> 
> <skip>
> > [faqa на faa 444]$ ./proba "/ttt/kkk/lll  kkk"
> > /ttt/kkk/lll kkk
> >
> > [faqa на faa 444]$ cat ./proba
> > #!/bin/bash
> > echo $1
> >
> >
> > Как видно из примера, в аргументе между "lll" и "kkk" стоит два пробела. А
> > в выводе скрипта уже остается только один.  Как бы эти грабельки обойти?
> 
> [faqa на faa 444]$ ./proba "/ttt/kkk/lll*kkk"

Пардон, конечно, но я что-то не понял Ваше решение. Чем должна эта
звездочка помочь? Дело в том, что в моей задаче агрументы для proba
поставляет xargs, которому их скормил find. Каким образом я буду
программно заменять идущие подряд несколько пробелов на звездочку я сейчас
не очень представляю. Вообще, конечно, можно, наверное, составить список
файлов сначала, потом пройтись по этому списку, заменяя пробелы на
звездочки, а потом уже натравливать на преобразованный список proba. Но
как то это уже монстрообразностью отдает. Я думал, может есть у bash какая
ручка, которую можно покрутить, чтобы он воспринимал строку аргументов как
единое целое, не пытаясь ее парсить.
 
> а еще лучше не присваивать файлам имена с пробклами

С этим я с Вами полностью согласен. Другое дело, что приходится
контактировать с теми, кто этой религии не подвержен :)


-- 
С уважением,
Фефилов Андрей.



Подробная информация о списке рассылки community