linux-l: Kommandozeilen-Optionen in Bash auslesen
Jens Dreger
jens.dreger at physik.fu-berlin.de
Di Feb 20 13:54:09 CET 2001
On Tue, Feb 20, 2001 at 01:20:39PM +0100, Mario Thaten wrote:
> Hallo Experten,
>
> ich hab mal eine Frage zu nem simplen Bash-Script. Ziel ist es, die
> Inhalte der Kommandozeilen-Parameter in ein Array auszulesen.
Warum benutzt Du nicht Perl ?!?
> Der mal von Rolf vorgeschlagene Weg mit "declare -a opts" ist
> unguenstig, da ich gern beim Aufruf
>
> ./script "Das erste Argument" argumentzwei ...
>
> "das erste Argument" als 1. Parameter im Array und nicht in 3 Parameter
> aufgeteilt haette. So weit, so gut. Ich habe folgendes Skript geschrieben:
Naja, das ist nicht das Problem. Schlimmer ist schon, dass 'declare -a'
erst ab bash 2 verfuegbar ist. Aber an portablen Programmen liegt Dir
ja offenabr nix, sonst wuerdest Du ja Perl benutzen ;)
Okok, jetzt mal erst:
----------8<-----------------------
#!/bin/bash
declare -a opts
opts=("$@")
echo 0 ${opts[0]}
echo 1 ${opts[1]}
echo 2 ${opts[2]}
----------8<-----------------------
dreger at w3:~/belug> bash -version
GNU bash, version 2.04.11(1)-release (i386-redhat-linux-gnu)
Copyright 1999 Free Software Foundation, Inc.
dreger at w3:~/belug> ./basharray "hallo welt" blah
0 hallo welt
1 blah
2
Jedoch:
dreger at smart:..dreger/belug> bash -version
GNU bash, version 1.14.7(1)
dreger at smart:..dreger/belug> ./basharray
declare: unknown option: `-a'
> Ich bin dankbar fuer jede Anregung, ausser die, dass ich doch bitte
> Perl benutzen soll. ;)
Naja, einfacher waer's schon...
Gruss,
Jens.
Mehr Informationen über die Mailingliste linux-l