Bash Alias mit Parametern

Ich benutze sehr häufig das find-Kommando. Dabei ist der häufigste Anwendungszweck die Suche nach Dateien eines bestimmten Musters. Also überlegte ich, ob ich mir dafür ein Script schreiben sollte. Allerdings hätte ich das Script dann jedesmal aufrufen müssen. Da man in einer Bash auf das Alias-Kommando zurückgreifen kann, dachte ich mir, man könnte ein Alias dafür einrichten. Nach Lesen der Doku war aber erstmal klar: das Alias-Kommando kann keine Übergabeparameter benutzen. Ich habe dann einen Tip gelesen, der statt eines Alias einfach eine eigene Funktion definiert. Und das geht dann so:

In der Datei .bashrc (wenn man die bash als Kommandozeile benutzt) fügt man folgende Zeilen ein (am besten da, wo evtl. schon Alias-Aufrufe stehen):

search()
{
    if [ -n "$1" ]; then
        gnome-search-tool –named=$1 –start;
    else
        gnome-search-tool;
    fi;
}

 Dann kann man (nachdem man eine neues Terminal aufgemacht hat (damit er die Datei überhaupt erneut lädt) einfach search Hallo eingeben und (das ist die zweite Erweiterung) die Gnome-Suche öffnet ein Fenster, in dem dann auch schon nach Dateien mit diesem Text im Namen gesucht wird.

 

Share and Enjoy:
  • del.icio.us
  • digg
  • Spurl

2 Reaktionen zu “Bash Alias mit Parametern”

  1. Spy

    > das Alias-Kommando kann keine Übergabeparameter benutzen

    ??? alias find=’find / -name $1′ klappt z.B. wunderbar …

  2. SubOptimal

    Hi Spy,

    ganz einfach:
    Der Alias wird zu ‘find / -name ‘ aufgelöst. Damit ist dann in der Bash “find something” auch zu einem gültigen Kommando und führt scheinbar zum erwünschten Ergebnis.

    Versuchs einfach mal mit:
    alias find=’find / -name $1 -mtime -1′
    und schon geht es nicht mehr.
    Paramter in einem Alias werden von der Bash nicht unterstützt. Wie im Beitrag auch geschrieben wurde. Auch wenn man es tricky so gestalten kann, dass mein scheinbar einen verwendet. ;-)

    SubOptimal

Einen Kommentar schreiben