linux-l: Kommandozeilen-Optionen in Bash auslesen

Guntram Trebs gunni at mathematik.hu-berlin.de
Di Feb 20 13:43:55 CET 2001


On Tue, 20 Feb 2001, 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. 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:
> 
> --8<--
> 
> #!/bin/sh
> 
> i=1
> while [ "$i" -le $# ]; do
>     eval echo \$$i
>     opts[$i]=`eval echo \$$i`
>     i=$[$i+1]; # increase
> done
> echo ${opts[1]} "|" ${opts[2]}
> 
> -->8--
> 
> Wahrscheinlich sitze ich zwei Zentimeter vor der Loesung und blicks
> einfach nicht. Hilfe! :) Sofern ich "man bash_builtins" ueberblicke,
> kann mir getopts bei diesem Problem nicht helfen.

Genau:

     opts[$i]=`eval echo \\$$i`
                         ^ einfügen

Guntram




Mehr Informationen über die Mailingliste linux-l