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