|
| Bash script - indlæsning af kommando linie~ Fra : News |
Dato : 13-08-05 22:20 |
|
Jeg
| |
News (13-08-2005)
| Kommentar Fra : News |
Dato : 13-08-05 22:27 |
|
Den kom jeg vist ikke så langt med!
Jeg har et program som skal tage følgende kommandoer:
../test.sh [-i] [-t] filename
Dvs. -i og -t er optionelle mens filename er mandatory.
Det ville jo være smart, hvis programmet også kunne forstå sammenskrivningen
af de optionelle parametre:
../test.sh -ti filename
Jeg synes ikke det er så smart, at have følgende pseudo kode:
if $1 == -i then var1=true
if $1 == -t then var2=true
if $2 == -i then var1=true
if $2 == -t then var2=true
if $1 == -it then var1=true and var2=true
if $1 == -ti then var1=true and var2=true
Der må være en bedre måde?
| |
Stig H. Jacobsen (13-08-2005)
| Kommentar Fra : Stig H. Jacobsen |
Dato : 13-08-05 23:07 |
|
On Sat, 13 Aug 2005 23:26:40 +0200, News wrote:
> Jeg synes ikke det er så smart, at have følgende pseudo kode:
> if $1 == -i then var1=true
> if $1 == -t then var2=true
man 1 getopt
Du kan også lave det med case/esac, men det kræver nok mere
knofedt fra din hånd.
--
Stig
| |
Jacob Tranholm (14-08-2005)
| Kommentar Fra : Jacob Tranholm |
Dato : 14-08-05 00:58 |
|
Stig H. Jacobsen skrev:
> On Sat, 13 Aug 2005 23:26:40 +0200, News wrote:
>
>
>>Jeg synes ikke det er så smart, at have følgende pseudo kode:
>>if $1 == -i then var1=true
>>if $1 == -t then var2=true
>
>
> man 1 getopt
>
> Du kan også lave det med case/esac, men det kræver nok mere
> knofedt fra din hånd.
>
Eller 'getopts', da det er et bash-script...
--
Mvh. Jacob Tranholm
http://jtranholm.dk/
| |
News (14-08-2005)
| Kommentar Fra : News |
Dato : 14-08-05 01:23 |
|
>> man 1 getopt
>
> Eller 'getopts', da det er et bash-script...
Jeg bruger "getopt" og det virker fint?
| |
Jacob Tranholm (14-08-2005)
| Kommentar Fra : Jacob Tranholm |
Dato : 14-08-05 01:47 |
|
News skrev:
>>>man 1 getopt
>>
>>Eller 'getopts', da det er et bash-script...
>
>
> Jeg bruger "getopt" og det virker fint?
>
>
I bash-scripts er der grundlæggende ikke nogen forskel. Forskellen er at
'getopt' i forhold til bash er en ekstern funktion, hvorimod 'getopts'
er en intern bash-funktion. De to funktioner er grundlæggende ens...
--
Mvh. Jacob Tranholm
http://jtranholm.dk/
| |
Stig H. Jacobsen (14-08-2005)
| Kommentar Fra : Stig H. Jacobsen |
Dato : 14-08-05 07:30 |
|
On Sun, 14 Aug 2005 01:58:28 +0200, Jacob Tranholm wrote:
> Eller 'getopts', da det er et bash-script...
Nej. Hvorfor lave produkt-specifik kode, når det slet ikke er nødvendigt?
--
Stig
| |
Ivar Madsen (14-08-2005)
| Kommentar Fra : Ivar Madsen |
Dato : 14-08-05 07:44 |
|
Stig H. Jacobsen skrev i dk.edb.system.unix:
>> Eller 'getopts', da det er et bash-script...
> Nej. Hvorfor lave produkt-specifik kode, når det slet ikke er nødvendigt?
F.eks. fordi det her er en funktion der er indbygget i BASH, henholdsvis et
program som BASH skal loade ind, og køre.
Det er resursekrævende at hente et program fra disk, i stedet for at bruge
en funktion i BASH.
--
Med venlig hilsen
Ivar Madsen
Hjælp til med at få overblik over CC's ADSL priser efter 22/7. på
http://milli.dk/index.php/CC_priser_post22072005/ !!! NY SIDE !!!
--------------------------------------------------------------------------------
| |
Klaus Ellegaard (14-08-2005)
| Kommentar Fra : Klaus Ellegaard |
Dato : 14-08-05 07:56 |
|
Ivar Madsen <spam.news.cc@milli.dk> writes:
>F.eks. fordi det her er en funktion der er indbygget i BASH, henholdsvis et
>program som BASH skal loade ind, og køre.
>Det er resursekrævende at hente et program fra disk, i stedet for at bruge
>en funktion i BASH.
Til gengæld holder scriptet op med at virke, når bash går af
mode. Hvis man bruger standarden, er scriptet nærmest garanteret
at virke de næste 50 år.
Mvh.
Klaus.
| |
|
|