Script aus Script ausführen

Diskutiere Script aus Script ausführen im Shell-Skripte Forum im Bereich Programmieren unter Linux/Unix; Hallo, habe da ein kleines Prob. Und zwar möchte ich aus einem Bash Script ein anderes aufrufen. Mit absoluten Pfaden funktionioniert das, aber...

  1. #1 Reen_sc, 15.02.2011
    Reen_sc

    Reen_sc Jungspund

    Dabei seit:
    11.12.2009
    Beiträge:
    17
    Zustimmungen:
    0
    Hallo,

    habe da ein kleines Prob. Und zwar möchte ich aus einem Bash Script ein anderes aufrufen. Mit absoluten Pfaden funktionioniert das, aber wie mache ich das mit relativen?

    Alle Scripte befinden sich im selben Ordner. Führe ich das oberste Script aus dem Verzeichnis aus, in welchen sich alle Scripte befinden, funktioniert das ohne Probs.

    Führe ich das oberste Script aus einem anderem Verzeichnis aus, wird auch das Unterscript versucht in diesem Fremdverzeichnis zu starten.

    Wie mache ich quasi dem obersten Script bei Aufruf des unteren klar, dass sich dieses im gleichen Verzeichnis befindet???


    Vielen Dank
     
  2. Anzeige

    Anzeige

    Wenn du mehr über Linux erfahren möchtest, dann solltest du dir mal folgende Shellkommandos anschauen.


    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  3. #2 HeadCrash, 15.02.2011
    Zuletzt bearbeitet: 15.02.2011
    HeadCrash

    HeadCrash Routinier

    Dabei seit:
    16.05.2009
    Beiträge:
    495
    Zustimmungen:
    2
    Ort:
    Bayern
    Abend,

    die Stichworte, welche du Suchst sind "working directory" bzw der Suchpfad in der PATH-Variable
    Wenn du deine Skripte mit "./skirptname" startest weißt du deine Shell an, im aktuellen working direcotry nach einem Ensprechenden Skriptnamen zu suchen und diesen zu starten. Das Funktioniert, wie du schon festgestellt hast nur, wenn du im richtigen Verzeichnis bist.
    Wenn du deine Skripte mit "skriptname" startest wird deine Shell versuchen den Befehl im Suchpfad der in der PATH-Variablen hinterlegt ist zu suchen.

    Zur Veranschaulichung ein paar Dummy-Skripte


    Alle Skripte liegen unter "~/skriptEcke/unixboard/workingdir"

    Code:
    # Dummyskript das aufgerufen wird
    headcrash@atlantis:~/skriptEcke/unixboard/workingdir$ cat uhrzeit
    date
    
    Code:
    # Unser Skript, das nur dann funktioniert, 
    # wenn wir im Selbenverzeichnis sind wie das Skript
    headcrash@atlantis:~/skriptEcke/unixboard/workingdir$ cat testskript
    pwd
    ./uhrzeit
    
    headcrash@atlantis:~/skriptEcke/unixboard/workingdir$ ./testskript
    /home/headcrash/skriptEcke/unixboard/workingdir
    Di 15. Feb 19:01:28 CET 2011
    
    # Wechsel in ein anderes Verzeichnis
    headcrash@atlantis:~/skriptEcke/unixboard/workingdir$ cd ..
    
    headcrash@atlantis:~/skriptEcke/unixboard$ workingdir/testskript
    /home/headcrash/skriptEcke/unixboard
    workingdir/testskript: line 2: ./uhrzeit: Datei oder Verzeichnis nicht gefunden
    
    Hat wie erwartet nur im Skriptverzeichnis "workingdir" funktioniert.

    Code:
    # CD in das Skriptverzeichnis
    headcrash@atlantis:~/skriptEcke/unixboard/workingdir$ cat testskript2
    pwd
    cd /home/headcrash/skriptEcke/unixboard/workingdir
    pwd
    ./uhrzeit
    
    headcrash@atlantis:~/skriptEcke/unixboard/workingdir$ ./testskript2
    /home/headcrash/skriptEcke/unixboard/workingdir
    /home/headcrash/skriptEcke/unixboard/workingdir
    Di 15. Feb 19:01:34 CET 2011
    
    # Wechsel in ein anderes Verzeichnis
    headcrash@atlantis:~/skriptEcke/unixboard/workingdir$ cd ..
    
    headcrash@atlantis:~/skriptEcke/unixboard$ workingdir/testskript2
    /home/headcrash/skriptEcke/unixboard
    /home/headcrash/skriptEcke/unixboard/workingdir
    Di 15. Feb 19:01:50 CET 2011
    
    Hier sind wir im Hauptskript mit dem "cd" in das Skriptverzeichnis zurück gesprungen, deshalb funktioniert hier der Aufruf des Unterskripts mit "./uhrzeit"

    Code:
    # Anpassen der PATH-Variable
    headcrash@atlantis:~/skriptEcke/unixboard/workingdir$ cat testskript3
    pwd
    PATH=/home/headcrash/skriptEcke/unixboard/workingdir:$PATH
    echo $PATH
    uhrzeit
    ######
    headcrash@atlantis:~/skriptEcke/unixboard/workingdir$ ./testskript3
    /home/headcrash/skriptEcke/unixboard/workingdir
    /home/headcrash/skriptEcke/unixboard/workingdir:/home/headcrash/bin:/usr/local/bin:/usr/bin:/bin:/usr/games
    Di 15. Feb 19:09:15 CET 2011
    
    # Wechsel in ein anderes Verzeichnis
    headcrash@atlantis:~/skriptEcke/unixboard/workingdir$ cd ../
    
    headcrash@atlantis:~/skriptEcke/unixboard$ workingdir/testskript3
    /home/headcrash/skriptEcke/unixboard
    /home/headcrash/skriptEcke/unixboard/workingdir:/home/headcrash/bin:/usr/local/bin:/usr/bin:/bin:/usr/games
    Di 15. Feb 19:09:30 CET 2011
    
    Hier haben wir die PATH-Variable so verändert, dass unsere Shell auch im Skriptverzeichnis "workingdir" nach ausführbaren Dateien sucht.

    Ich hoffe ich konnte dir dass ein bisschen veranschaulichen, du wirst nicht darum herum kommen den Pfad zu den Skripten irgendwo im Hauptskript zu hinterlegen. Ob das jetzt durch eine Variable für den absoluten Pfad für die Skripte, ein "cd" ins Skriptverzeichnis oder das Anpassen der PATH-Variablen ist bleibt dir hinterlassen.

    Schönen Abend
    HeadCrash
     
  4. #3 Remidemi, 15.02.2011
    Remidemi

    Remidemi Routinier

    Dabei seit:
    17.03.2008
    Beiträge:
    352
    Zustimmungen:
    0
    Ort:
    Südpfalz
    Das ist doch mal ne Antwort ;) !
     
  5. marce

    marce Kaiser

    Dabei seit:
    01.08.2007
    Beiträge:
    1.279
    Zustimmungen:
    21
    wenn man keine absoluten Pfade verwenden will (oder gar $PATH anpassen) für den Sprung in's Working-Directory geht auch ein
    Code:
    cd $(dirname $0)
    am Scriptanfang.
    (und ja, das könnte man auch anders schreiben, aber so versteht's wenigstens fast jeder)
     
Thema: Script aus Script ausführen
Besucher kamen mit folgenden Suchen
  1. bash script aus script aufrufen

    ,
  2. script aus script starten

    ,
  3. linux shell script aus script aufrufen

    ,
  4. bash skript aufrufen,
  5. unix script inhalt ausfuehren bei anderem script,
  6. shellscript aus shellscript aufrufen,
  7. linux bask Script aus script aufrufen,
  8. ein script aus dem anderen strarten,
  9. teraterm linux skrip von einem anderen pfad ausführen,
  10. linux shell externes programm aufrufen,
  11. shell script in shell script ausführen,
  12. shell script aus anderem script ausführen,
  13. Programm starten aus bash,
  14. python führe anderes skript in shell aus,
  15. script mit script ausführen,
  16. bash script aus script starten,
  17. script in script aufrufen,
  18. bash anderes script aufrufen Pinterest,
  19. korn shell externes skript starten,
  20. unix script anderes script aufrufen,
  21. bash script programme aufrufen,
  22. bash externes script aufrufen,
  23. bash skript aus skript aufrufen,
  24. bash anderes skript starten,
  25. bin bash script ein anderes script starten
Die Seite wird geladen...

Script aus Script ausführen - Ähnliche Themen

  1. Start-/Stop-Scripte bei RH Linux 7 (ehemals .../rc.d/S99 .../K99

    Start-/Stop-Scripte bei RH Linux 7 (ehemals .../rc.d/S99 .../K99: Wie kann ich bei RH Lin 7 Autostart-/stop-Scripte laufen lassen ? Bei älteren Versionen konnte ich unter /etc/rc.d oder .../rc2.d eine S99 bzw....
  2. Hermes: JavaScript-Engine von Facebook

    Hermes: JavaScript-Engine von Facebook: Facebook hat Hermes, eine JavaScript-Engine zur Ausführung von React Native auf Android, vorgestellt. Hermes optimiert die Ausführung von...
  3. mehrsprachiges Shellscript - wie umsetzen?

    mehrsprachiges Shellscript - wie umsetzen?: Hallo, wie zieht man am besten mehrsprachige Scripte auf? Zuerst alle Texte in Variablen legen und diese später im Script aufrufen, je nach...
  4. script sshpass

    script sshpass: Guten Morgen, auf einem Admin Server (RHEL) wo nur wir Admin Zugriff haben möchte ich gerne ein Script starten, welches über ssh überprüft ob ich...
  5. Verschlüsseltes Backup-Script mit rsync

    Verschlüsseltes Backup-Script mit rsync: Hey, ich habe 3 CentOS VPS, die ich backupen möchte. Jedoch möchte ich mir hierzu einen 4. VPS mieten, damit die 3 VPS keinen Zugang zu dem...
  1. Diese Seite verwendet Cookies um Inhalte zu personalisieren. Außerdem werden auch Cookies von Diensten Dritter gesetzt. Mit dem weiteren Aufenthalt akzeptierst du diesen Einsatz von Cookies.
    Information ausblenden