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