Anzeige:
Ergebnis 1 bis 5 von 5

Thema: bash-script: eigene Position im Dateisystem erfragen?

  1. #1
    Registrierter Benutzer
    Registriert seit
    17.11.2005
    Beiträge
    47

    bash-script: eigene Position im Dateisystem erfragen?

    Hallo!
    Weiß jemand, ob es in einem Bash-Script eine Möglichkeit gibt (z.B. über eine spezielle Variable), den eigenen Pfad des Scriptes festzustellen?

  2. #2
    Registrierter Benutzer Avatar von daswaldhorn
    Registriert seit
    31.07.2003
    Ort
    Voerde
    Beiträge
    888
    Hallo,

    suchst du pwd -- print working directory?

    Grüße, Carsten

  3. #3
    Registrierter Benutzer
    Registriert seit
    07.05.2007
    Beiträge
    656
    Zitat Zitat von daswaldhorn Beitrag anzeigen
    suchst du pwd -- print working directory?
    Das liefert Dir den Pfad, in dem Du beim Aufruf eines Scripts stehst, nicht den Pfad des Scripts. Für letzteren gibt es folgende Möglichkeiten:

    1. Das Script wird mit einem absoluten Pfad aufgerufen. Dann kannst Du den Pfad mit SCRIPT_PATH=`dirname $0` im Script ermitteln.

    2. Das Script wird mit einem relativen Pfad aufgerufen. Dann kriegst Du den Pfad mittels SCRIPT_PATH=`pwd`/`dirname $0` raus.

    3. Das Script wird ohne Pfad aufgerufen. Dann liegt es im Suchpfad ($PATH) und der Pfad kann mittels SCRIPT_PATH=`dirname \`which $0\`` ermittelt werden.

    Um alle Möglichkeiten abzuklappern, kann folgender Code-Schnipsel benutzt werden (ungetestet):
    Code:
    # Pfad enthaelt kein / - also aus which bestimmen
    if test -z "`echo \"$0\" | grep /`"; then
      SCRIPT_PATH=`dirname \`which "$0"\``
    # Pfad beginnt mit / - also absoluter Pfad
    elif test "`echo $0 | cut -c1`" = "/"; then
      SCRIPT_PATH=`dirname "$0"`
    # alles andere: relativer Pfad
    else
      SCRIPT_PATH=`pwd`/`dirname "$0"`
    fi
    Jan
    Geändert von jan61 (16-12-2007 um 17:19 Uhr) Grund: Fipptehler

  4. #4
    Registrierter Benutzer
    Registriert seit
    17.11.2005
    Beiträge
    47
    Wow! Danke Euch beiden! Ja, pwd hätte nicht funktioniert. Aber Jan's Post sieht ganz nach einer Lösung aus.
    Danke!

  5. #5
    Registrierter Benutzer
    Registriert seit
    07.05.2014
    Beiträge
    6

    Eine Korrektur nach all der Zeit

    Moin,

    damit Nachzuegler wie ich auch hier den 'kanonischen' Weg finden, den Scriptinstallationsort eines Bashscriptes im Script selbst zu finden:

    INSTALLATION_PATH="$(dirname $(readlink -f ${0}))"

    Ein Beispiel der Nutzung, habe ich hier geposted.. Das Script dort enthaelt auch noch den Tip, wie man herausfindet, ob eine Funktion definiert ist

    declare -f -F "${1}" > /dev/null
    Geändert von joocom (25-06-2014 um 11:27 Uhr)

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •