(Gelöst) bash Funktion lla (Übergabe von Parametern mit $@)

Status
Für weitere Antworten geschlossen.

biberle

New Member
Hallo allerseits,

die von mir erstellte Bash-Funktion lla funktioniert nicht so wie erwartet, und ich finde keine Erklärung, warum es nicht so funktioniert, wie ich es soll.

Hier die (sehr einfache) Funktion:
function lla ()
{
ls -Fla
}

Sei SuseDir ein Verzeichnis, dann liefert der Aufruf
lla SuseDir
den Inhalt des aktuellen Verzeichnisses, d.h. der Vaterverzeichnisses von SuseDir. Das soll so natürlich nicht sein.

Wenn ich einen alias definiere (alias lla="ls -Fla"), dann liefert der Aufruf
lla SuseDir
als Ausgabe das, was der Befehl "ls -Fla SuseDir" liefert, also das gewünschte Resultat.

Bisher hatte ich mit Funktionen nie ein Problem. Was mache ich falsch?
Was habe nicht verstanden?

Als nicht so versierter Bashprogrammierer bin ich dankbar für jeden Hinweis.

Viele Grüße,
biberle
 

benne

Moderator
AW: bash Funktion lla

Hallo biberle,

ich denke du musst der Funktion noch mitteilen, dass er das ls auch auf dem Verzeichnis ausführen soll, dass du als Argument mit gibst.
Argumente werden mit "$Ziffer" gekennzeichnet. Bei mir tut folgendes:
Code:
function test {
        ls -Fla $1
}
test $1
(In diesem Fall $1, weil er das erste Argument nehmen soll, $2 wäre dementsprechend das zweite Argument u.s.w)

Schönen Gruß,
benne
 

biberle

New Member
(Gelöst) bash Funktion lla

Mein Dank gilt Benne.
Nächste Woche habe ich Termin beim Schreiner. Der soll mir das Brett vor'm Kopf entfernen.

Zur Verallgemeinerung habe ich die ursprüngliche Funktion entsprechend dem Tipp von Benne angepasst:
Code:
function lla ()
{
ls -Fla $@
}
Jetzt wollte diesen Post eigentlich schließen, finde aber auch auf den Hilfeseiten keinen Hinweis, wie ich das machen kann. Bin eben doch ein Newbie.

Gruß,
Biberle
 

Rain_Maker

Administrator
Teammitglied
AW: bash Funktion lla

Den Hinweis kannst Du auch nicht finden, das ist bei den derzeitigen Einstellungen der Forensoftware ausschliesslich den Mods/Admins vorbehalten.

=> Licht aus.

Greetz,

RM
 
Status
Für weitere Antworten geschlossen.
Oben