Moin Stephan,
zwei Punkte:
- ohne eine 'shift'-Anweisung wird die While-Schleife zum Endlos-Loop.
- ohne Parameterübergabe an die Funktion kann 'list' nichts ausgeben.

Probier mal:

#!/bin/bash
list() {
        echo $#
        while [ $# -gt 0 ]
        do
          echo $1
        done
}
list $*;
# oder
list $@;

Gruß,
Klaus

Stephan Wezorke wrote:
Hallo Leute,

ich würde gerne die Bearbeitung von Parametern $1, $2, usw. in eine Funktion auslagern, da ich diese an verschiedenen Stellen aufrufe. Dummerweise zählt die Funktion wohl nicht zum Scope-Bereich. Hat jemand eine Idee, was man da machen kann?

Hier noch mal ein Beispiel zur Verdeutlichung:
#!/bin/bash
list() {
        echo $#                 # Gibt 0 aus, auch wenn man Parameter übergibt
        while [ $# -gt 0 ]
        do
                echo $1         # Wird entsprechend erst garnicht aufgerufen.
        done
}
list;

Gruß Stephan


------------------------------------------------------------------------

--
----------------------------------------------------------------------------
PUG - Penguin User Group Wiesbaden - http://www.pug.org

--
----------------------------------------------------------------------------
PUG - Penguin User Group Wiesbaden - http://www.pug.org

Antwort per Email an