Předání parametů v BASH

Petr Klíma Petr.Klima na madeta.cz
Pátek Únor 8 08:16:49 CET 2008


>> eee. Oprava:
>> date "${@:1:$#}">
>>     
>
> 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 ?

Ještě poznámka

Pokud bych z "$@" chtěl jeden parametr vyhodit (nebo jinak pracovat s 
$@), jak to udělat?

Používám toto (důležité je to eval před echo):
=== /tmp/btest ===============
set -x
CLI=""
for par in `seq 1 ${#}`
do
    # Přeskočím parametr --tebe-nechci
    [ "x${1}" != "x--tebe-nechci" ] && CLI=${CLI}" \""${1}"\""
    shift
done
eval echo ${CLI}
==========================

$ bash -x /tmp/btest -d "2 day ago"
+ set -x
+ CLI=
++ seq 1 2
+ for par in '`seq 1 ${#}`'
+ '[' x-d '!=' x--tebe-nechci ']'
+ CLI=' "-d"'
+ shift
+ for par in '`seq 1 ${#}`'
+ '[' 'x2 day ago' '!=' x--tebe-nechci ']'
+ CLI=' "-d" "2 day ago"'
+ shift
+ eval echo '"-d"' '"2' day 'ago"'
++ echo -d '2 day ago'     <------ a to je přesně to co chci ...
-d 2 day ago

Jde to udělat jednodušeji ?

Díky za pomoc



-- 


   Petr Klíma                                                 
                                                              
   e-mail:  petr.klima na madeta.cz   MADETA a.s.          
   phone:   +420 389 136 254       Rudolfovská 246/83         
   web:     http://www.madeta.cz   370 50 České Budějovice    
                                   Czech Republic




Další informace o konferenci Linux