expanze parametrů v /bin/bash

Jaroslav Aster orm na humlak.cz
Sobota Říjen 27 19:27:05 CEST 2012


Miroslav Vancl píše v So 27. 10. 2012 v 17:57 +0200:
> >
> > Snad nebudu psat neco co uz vite, pokud ano tak se omlouvam :-). V
> > shellu je potreba mit na pameti, ze je rozdil mezi " a ' a to takovy, ze
> > v retezci uzavrenem " se promenne shellu pred pouzitim expanduji, tj. i
> > *, a v retezci uzavrenem ' se promene neexpanduji.
> >
> > --
> > Jaroslav Aster <orm na humlak.cz>
> 
> 
> Snad nebudu psat neco co uz vite, pokud ale ne, nenechte se vyse uvedenym
> zmast a radsi si to vyzkousejte:
> 
> Hvezdicka a otaznik se v shellech pouzivaji pro expanzi nazvu souboru
> (globbing, nejedná se tedy o expanzi promennych nebo parametru) a pokud je
> retezec s nimi uzavren v uvozovkach (natoz v apostrofech), expanze se
> neprovadi.
> Expanze parametru $* je neco jineho a navic jeho uzavreni do uvozovek ma
> specialni vyznam.

Mate pravdu, s tou hvezdickou a uvozovkama jsem to popletl. Osobne
hvezdicku v shellu nepouzivam, protoze ne vzdy dava vysledky, ktere
chci, takze se ji vyhybam jak to jen jde :-).

$ mkdir test
$ touch test/file
$ for i in test/*; do echo $i; done
test/file
$ rm test/file
$ for i in test/*; do echo $i; done
test/*

V poslednim prikazu bych cekal, ze mi to nevrati nic. Proste pokud
hvezdicka nema na co expandovat, tak se vraci hvezdicka.

-- 
Jaroslav Aster <orm na humlak.cz>



Další informace o konferenci Linux