Předání parametů v BASH
Pavel Kankovsky
peak na argo.troja.mff.cuni.cz
Neděle Únor 10 16:57:07 CET 2008
On Fri, 8 Feb 2008, Petr Klíma wrote:
> > Jestli nakonec nebude nejjednodušší prostě "$@" :)
> >
> No jasně!!!
> Přísahám , že jsem to zkoušel jako první a nefungovalo mi to ... ;-) asi
> ruce nebo co ?
To asi bude opravdu rukama. :)
> Pokud bych z "$@" chtěl jeden parametr vyhodit (nebo jinak pracovat
> s $@), jak to udělat?
Pokud se lze spolehnout na to, že shell je Bash, pak bych si asi pomohl
polem. Přeházel bych parametry, co chci, do nějakého pole, a pak použil
"${pole[@]}".
Bez bashových konstrukcí by možná šlo pole emulovat tak, že bych si
požadované parametry nastrkal do proměnných $a1, $a2... $aN, do $a0 dal
požadovaný příkaz a zároveň zkonstruoval řetězec s obsahem (doslova):
"$a0" "$a1" "$a2"... "$aN"
a na ten bych pak pustil eval.
> Používám toto (důležité je to eval před echo):
> [ "x${1}" != "x--tebe-nechci" ] && CLI=${CLI}" \""${1}"\""
Toto nedopadne dobře v případě, že je v $1 nějaký ošklivý znak.
--Pavel Kankovsky aka Peak [ Boycott Microsoft--http://www.vcnet.com/bms ]
"Resistance is futile. Open your source code and prepare for assimilation."
Další informace o konferenci Linux