Anzeige:
Ergebnis 1 bis 6 von 6

Thema: Bash: Ist Verzeichnis X in $PATH enthalten?

  1. #1
    Registrierter Benutzer Avatar von yankee42
    Registriert seit
    15.04.2005
    Beiträge
    41

    Bash: Ist Verzeichnis X in $PATH enthalten?

    Hallo zusammen :-).

    Ich habe ein bash-Skript, welches prüfen soll, ob ein bestimmtes Verzeichnis in $PATH enthalten ist. Wenn nicht, soll das Verzeichnis hinzugefügt werden.

    Wie kann ich dies überprüfen? Ich habe zwar schon etwas gepastelt:
    Code:
    CHECK="/some/path/to/somewhere"
    EXISTS=`echo -n "$PATH" | xargs -d ':' -n 1 bash -c '[ "$1" == "$0" ] && echo -n 1' "$CHECK"`
    [ "${EXISTS:0:1}" == "1" ] || export PATH="$PATH:$CHECK"
    Allerdings erscheint mir dies recht umständlich. Geht es auch einfacher?

  2. #2
    Registrierter Benutzer
    Registriert seit
    14.01.2002
    Beiträge
    657
    zB

    Code:
    echo $PATH | perl -pne '/(^|:)\/pfad(:|$)/ ||  s/$/:\/pfad/'

  3. #3
    Registrierter Benutzer Avatar von undefined
    Registriert seit
    01.03.2004
    Beiträge
    1.255
    nachsehen ob vorhanden, wenn nicht dann einfügen ....
    Code:
    case ":${PATH}:" in
      *:/some/path/to/somewhere:*) ;;
      *)
        PATH=$PATH:/some/path/to/somewhere
      ;;
    esac
    mfg undefined
    --
    Undefined Behavior (undefiniertes Verhalten) bedeutet meistens etwas ungültiges.
    xhtml Debugger

  4. #4
    Registrierter Benutzer
    Registriert seit
    14.01.2002
    Beiträge
    657
    Zitat Zitat von undefined Beitrag anzeigen
    nachsehen ob vorhanden, wenn nicht dann einfügen ....
    Code:
    case ":${PATH}:" in
      *:/some/path/to/somewhere:*) ;;
      *)
        PATH=$PATH:/some/path/to/somewhere
      ;;
    esac

    funktioniert nicht unbedingt, da der pfad auch am anfang od ende stehen kann, also ohne : davor/dahinter.

  5. #5
    Registrierter Benutzer Avatar von undefined
    Registriert seit
    01.03.2004
    Beiträge
    1.255
    @msi sehe noch mal genau hin
    mfg undefined
    --
    Undefined Behavior (undefiniertes Verhalten) bedeutet meistens etwas ungültiges.
    xhtml Debugger

  6. #6
    Registrierter Benutzer Avatar von yankee42
    Registriert seit
    15.04.2005
    Beiträge
    41
    Zitat Zitat von undefined Beitrag anzeigen
    nachsehen ob vorhanden, wenn nicht dann einfügen ....
    Code:
    case ":${PATH}:" in
      *:/some/path/to/somewhere:*) ;;
      *)
        PATH=$PATH:/some/path/to/somewhere
      ;;
    esac
    Hey cool, ich bin garnicht auf die Idee gekommen bei dem Test vor und hinter path einen Doppelpunkt zu setzen. Genau wie msi habe ich dies beim ersten mal lesen sogar übersehen. Und dass dies mit dem * im case so verwendbar ist wusste ich auch nicht. Wieder was gelernt. Danke :-).

    @msi: Auch dir danke für deine Mühe :-).

Lesezeichen

Berechtigungen

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