Moritz: Aliase/Funktionen exportieren

Hallöchen,

ich habe folgendes Script "startup" angelegt und mit chmod ausführbar gemacht:

-- snip --
#!/bin/bash

uptime

function l() {
  ls -lA --color=auto $*
}
export -f l

-- /snip --

In meiner .bashrc-Datei rufe ich das Script auf. Der uptime-Befehl wird beim nächsten Login auch brav ausgeführt. Leider ist "l" trotz des Exports nicht verfügbar. Kann mir jemand mal einen Schubs geben, woran das liegen könnte?

Danke!
Moritz

  1. Hallo,

    In meiner .bashrc-Datei rufe ich das Script auf.

    schreibe Dir doch einfach einen alias-Eintrag in die .bashrc:

    alias myfunc="uptime && ls -lA --color=auto $*"

    Gruß aus Berlin!
    eddi

  2. Hallo Moritz,

    In meiner .bashrc-Datei rufe ich das Script auf. Der uptime-Befehl wird beim nächsten Login auch brav ausgeführt. Leider ist "l" trotz des Exports nicht verfügbar. Kann mir jemand mal einen Schubs geben, woran das liegen könnte?

    Wenn Du in Deine .bashrc »startup« reinschreibst, dann wird ein neuer Shell-Prozess erzeugt, der führt dann das Script aus und dort wird dann die Funktion exportiert. Danach beendet sich der Prozess und gibt die Kontrolle wieder an die eigentliche Shell zurück -> der Export ist weg.

    Schreibe

    source startup

    oder

    . startup

    in Deine .bashrc, das ist wie eine Art "include", das die Datei in die aktuelle einbinden, damit bleibt das export auch bestehen, da dann *keine* neue Shell dafür gestartet wird.

    Viele Grüße,
    Christian

    --
    "I have always wished for my computer to be as easy to use as my telephone; my wish has come true because I can no longer figure out how to use my telephone." - Bjarne Stroustrup