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