Předání parametů v BASH
"Petr \"Qaxi\" Klíma"
qaxi na seznam.cz
Čtvrtek Únor 7 16:25:31 CET 2008
Marian Cavojsky napsal(a):
> On Thu, Feb 07, 2008 at 03:32:40PM +0100, "Petr \"Qaxi\" Klíma" wrote:
>
>> Zdravím
>> narazil jsem na potíž v Bashi
>>
>> ====== soubor ddate ==============================
>> #!/usr/bin/env bash
>>
>> set -x
>>
>> F='%a %e. %b %Y'
>>
>> # jak vygenerovat $CLI ?
>> CLI="XXX"
>>
>> date $CLI "+${F}"
>>
>
> date "+${F}" $*
>
$ bash -x ddate -d "2 day ago"
+ set -x
+ F='%a %e. %b %Y'
+ date '+%a %e. %b %Y' -d 2 day ago
date: too many non-option arguments: day ...
Více informací získáte příkazem `date --help'.
pokud to dám do "" tak to je taky spatne ...
tohle sice nějak projde (nemělo by, je to jeden parametr ne dva)
$bash -x ddate -d "2 day ago"
+ set -x
+ F='%a %e. %b %Y'
+ date '+%a %e. %b %Y' '-d 2 day ago'
Út 5. úno 2008
ale tohle neprojde
$bash -x ddate -r ~/.bashrc
+ set -x
+ F='%a %e. %b %Y'
+ date '+%a %e. %b %Y' '-r /home/klima/.bashrc'
date: /home/klima/.bashrc: není souborem ani adresářem
(toto samozrelme projde:
$ date '+%a %e. %b %Y' -r '/home/klima/.bashrc'
)
Po 6. srp 2007
>
>> ==============================================
>>
>> chci dosahnout toho aby fungovalo
>> $ ddate
>> Čt 7. úno 2008
>>
>> i
>> $ ddate -d "2 day ago"
>> Út 5. úno 2008
>>
>> i
>> $ ddate -r /etc/passwd
>> St 31. říj 2007
>>
>>
>> v zásadě potřebuji vzít parametry ddate a předat je programu date
>>
>> Musím to udělat pomocí
>> case $1
>> -d) ....
>>
>> nebo to jde nějak obecněji?
>>
>
> inak na toto sa skor hodi alias:
> $ alias dddate='date "+%a %e. %b %Y"'
> $ dddate
> Št 7. feb 2008
> $ dddate -r /etc/passwd
> Št 31. jan 2008
>
>
Jen pokud to chcete používat jen z bash.
zkuste si spustit vim a zadat
:r !dddate
návratová hodnota shellu 127
--
Petr Klíma e-mail: qaxi na seznam.cz
Další informace o konferenci Linux