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