PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : [bash] Zugriff aufs letzte Argument



Andi_Rostock
11-08-2006, 07:19
Hallo,

ich habe ein script mit variabler Argumentenliste geschrieben.
Mit $1,$2,$3... kann ich auf die jeweiligen Argumente zugreifen. $# gibt die Anzahl der Argumente wieder. Soweit ist mir das klar. Wie kann ich nun auf das letzte Argument zugreifen?
Hier ein kleines Beispiel, welches nicht funktioniert:


#!/bin/bash
typeset -i i
liste=$*
i=$#
printf "Anzahl Parameter %i\n" $i
for name in $liste
do
echo $name
done
printf "Zugriff auf den ersten und letzten Wert der Liste\n"
printf "Element 1: %s\n" ${liste[0]}
printf "Element i: %s\n" ${liste[$i-1]}


Die Ausgabe lautet dann:
./test abc efg
Anzahl Parameter 2
abc
efg
Zugriff auf den ersten und letzten Wert der Liste
Element 1: abc
Element 1: efg
Element i:

Habt Ihr ne Idee?

Viele Grüße
Andreas

michael.sprick
11-08-2006, 08:22
Das Array wird falsch initialisiert


#!/bin/bash
typeset -i i
liste=$*


richtig wäre:



#!/bin/bash
typeset -i i
liste=($*)


Dann sollte auch ${liste[$i-1]} funktionieren.

Andi_Rostock
11-08-2006, 09:51
Vielen Dank, das war´s.