Functions in ksh und bash

Dieses Thema im Forum "Shell-Skripte" wurde erstellt von Tommy_WY, 03.09.2008.

  1. #1 Tommy_WY, 03.09.2008
    Tommy_WY

    Tommy_WY Mitglied

    Dabei seit:
    03.06.2008
    Beiträge:
    28
    Zustimmungen:
    0
    Hallo zusammen,

    ich habe da ein Problem mit der ksh bzw. der bash zu dem Thema functions.

    Ich habe ein Script erstellt (ausgeführt in der ksh), welches mehrere Funktionen verwendet.
    Da ich die Funktionen auch in anderen Shellscripten verwende, habe ich mir quasi eine function Library erstellt, in dem alle Funktionen abgelegt sind.
    Sieht dann ungefähr so aus:
    /opt/daten/<mydir>/function

    In meinem Script wird dann zunächst der function-Path gesetzt (oder auch in der .profile). In dem Verzeichnis liegt nun meine function "my_function".
    Danach lade ich die benötigten Funktionen mit autoload

    #!/bin/ksh
    #Pfad für Funktionen setzen
    FPATH=/opt/daten/<mydir>/function

    autoload my_function

    #Hauptprogramm
    #Aufruf der Funktion my_function
    my_function

    #entladen aus dem Speicher
    unset -f my_function

    exit

    Nun zum Problem.

    In der ksh funzt das wunderbar, aber wie mache ich sowas in der bash.
    Ich hab schon im Net gesucht, aber nix gefunden (z. B. bei http://linuxseiten.kg-it.de).
    Die Funktionen werden immer nur direkt im Script dargestellt, aber eine Auslagerung ist nicht zu finden.

    Für einen Tip wäre ich wirklich sehr dankbar.


    Gruss
    Tommy

    :hilfe2: ?( :think:
     
  2. Anzeige

    Schau dir mal diese Kategorie an. Dort findest du bestimmt etwas.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  3. #2 Wolfgang, 03.09.2008
    Wolfgang

    Wolfgang Foren Gott

    Dabei seit:
    24.04.2005
    Beiträge:
    3.978
    Zustimmungen:
    0
    Ort:
    Erfurt
    Du suchst nach source /path/zur/Datei.
     
  4. #3 Tommy_WY, 04.09.2008
    Tommy_WY

    Tommy_WY Mitglied

    Dabei seit:
    03.06.2008
    Beiträge:
    28
    Zustimmungen:
    0
    hab ich jetzt nicht so ganz verstanden, mea culpa.
    was meinst du damit?
     
  5. #4 Wolfgang, 04.09.2008
    Wolfgang

    Wolfgang Foren Gott

    Dabei seit:
    24.04.2005
    Beiträge:
    3.978
    Zustimmungen:
    0
    Ort:
    Erfurt
    Du schreibst deine Funktionen in eine Datei. (e.g /home/user/funktionen.txt)
    Statt autoload nutzt du nun einfach:
    Code:
    source /home/user/funktionen.txt
    Damit hast du sie im Namensraum.

    unset wirkt hier genauso.

    Und was meinst du mit Auslagerung?

    Wolfgang
     
  6. #5 Tommy_WY, 05.09.2008
    Tommy_WY

    Tommy_WY Mitglied

    Dabei seit:
    03.06.2008
    Beiträge:
    28
    Zustimmungen:
    0
    genau das. was du beschrieben hast, also source /home/user/funktionen.txt

    in den beispielen wird die function immer im script definiert und auch dort verwendet.
    mit auslagern meine ich funktionen irgendwo zentral ablegen, damit man das rad nicht immer wieder neu erfinden muss oder funktionen per copy and paste immer ins script zu kopieren.

    muchas gracias, der hinweis hat mir sehr geholfen. jetzt kann ich meine scripte auf die bash umstellen.

    danke danke und gruss
    tommy
     
  7. #6 tuxlover, 05.09.2008
    tuxlover

    tuxlover Der den Tux knuddelt

    Dabei seit:
    26.10.2005
    Beiträge:
    2.106
    Zustimmungen:
    0
    Ort:
    berlin
    in der bash dürfte das afaik niemals funktionieren.

    grüße tuxlover
     
  8. #7 Tommy_WY, 05.09.2008
    Tommy_WY

    Tommy_WY Mitglied

    Dabei seit:
    03.06.2008
    Beiträge:
    28
    Zustimmungen:
    0
    wie jetzt?
    geht oder geht nicht?
     
  9. Anzeige

    Vielleicht findest du HIER Antworten.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  10. #8 Wolfgang, 05.09.2008
    Zuletzt bearbeitet: 05.09.2008
    Wolfgang

    Wolfgang Foren Gott

    Dabei seit:
    24.04.2005
    Beiträge:
    3.978
    Zustimmungen:
    0
    Ort:
    Erfurt
    Was funktioniert nicht?

    source kannst du nicht gemeint haben.

    Du kannst die ganzen Funktionen natürlich auch gleich in dein ~/.bashrc oder ~/.profile schreiben.
    Gruß Wolfgang
     
  11. #9 Tommy_WY, 08.09.2008
    Tommy_WY

    Tommy_WY Mitglied

    Dabei seit:
    03.06.2008
    Beiträge:
    28
    Zustimmungen:
    0
    jepp danke.
    den pfad habe ich mittlerweile eh schon ins profil aufgenommen.

    Gruss
    Tommy
     
Thema: Functions in ksh und bash
Besucher kamen mit folgenden Suchen
  1. ksh functions auslagern

Die Seite wird geladen...

Functions in ksh und bash - Ähnliche Themen

  1. Bash cdots: change directory functions .. ... .... etc mit tab-completion

    Bash cdots: change directory functions .. ... .... etc mit tab-completion: Ich wollte Tastenanschläge speichern, indem ich zurück Abkürzungen für ändernde Verzeichnisse verwendete. Ich wollte auch ein zusätzliches...
  2. disable_functions, suhosin.executor.func.blacklist

    disable_functions, suhosin.executor.func.blacklist: Hallo, neben disable_functions gibt es bei aktivierter Suhosin-Extension ja auch die Möglichkeit suhosin.executor.func.blacklist zu nutzen. Hat...
  3. Bräuchte Hilfe bei Backupscript mittels Bash und cronjob

    Bräuchte Hilfe bei Backupscript mittels Bash und cronjob: Es soll für bestimmte Ordner Archivierung aller Dateien(Logfiles), die älter als 30 Tage sind machen. Am besten einmal täglich nachts irgendwann....
  4. Bashscript aus Debian6 läuft nicht auf Debian7

    Bashscript aus Debian6 läuft nicht auf Debian7: Hallo an alle, nachdem ich ein Skript von squeeze auf wheezy kopiert habe und ausführte, erschienen gleich wilde Fehlermeldungen, nach denen ich...
  5. Bash sucht neues Logo

    Bash sucht neues Logo: Die GNU Bourne Again Shell (bash) sucht nach knapp 20 Jahren ein neues, individuelles Logo. Alle Anwender und Interessenten sind deshalb...