Anzeige:
Ergebnis 1 bis 14 von 14

Thema: shell mittels einer anderen shell ausführen

  1. #1
    Registrierter Benutzer
    Registriert seit
    Apr 2012
    Beiträge
    14

    shell mittels einer anderen shell ausführen

    guten tag und ein hallo von mir

    weiss nicht genau, ob ich hier richtig bin, hoffe jedoch, dass
    ihr mir weiterhelfen könnt. ich suche eine möglichkeit, wie
    schon im threadtitel geschrieben, eine shell, welche sich in
    einem unterverzeichnis befindet, durch eine andere shell
    auszuführen. also in etwa so sieht das aus:

    /verzeichnis1/shell1.sh

    diese sollte dann die folgende aus

    /verzeichnis1/verzeichnis2/shell2.sh

    ausführen.

    Habe das nun so gemacht:

    Code:
    #!/bin/sh
    ./verzeichnis2/shell2.sh
    Leider bekomme ich dadurch immer die meldung, datei oder
    verzeichnis nicht gefunden. was muss ich da nun tun?

    freundliche grüsse

  2. #2
    Registrierter Benutzer Avatar von Iluminat23
    Registriert seit
    Mar 2003
    Beiträge
    1.087
    Zitat Zitat von endy66 Beitrag anzeigen
    Code:
    #!/bin/sh
    ./verzeichnis2/shell2.sh
    Leider bekomme ich dadurch immer die meldung, datei oder
    verzeichnis nicht gefunden. was muss ich da nun tun?
    Der Punkt steht für das Current Working Directory, wenn du das erste Script von einer anderen Stell aus ausführst ist dein CWD das verzeichnis in dem du dich befindest nciht das wo das script liegt.

    BSP:
    Code:
    $ cd /tmp
    $ ./script1.sh
    CWD: /tmp
    $ cd /
    $ ./tmp/script1.sh 
    CWD: /
    (Zeilen die mit $ beginnen sind befehle die eingegeben werden)

    Gruß
    iluminat23

    ------
    scribt1.sh
    Code:
    #!/bin/sh
    echo "CWD: $(pwd)"
    Gibt das aktuelle CWD aus.
    Wer Rechtschreibfehler findet, darf diese behalten. Legasthenie
    Oh Herr, meine Überlegenheit wird mir langsam zur Last.
    Ruf mich zurück!
    -- Dr. Perry Cox

  3. #3
    Registrierter Benutzer
    Registriert seit
    Apr 2012
    Beiträge
    14
    achso ok, das habe ich nun verstanden.
    Aber ich kriege es trotzdem nicht hin,
    ein script aus einem Unterverzeichnis direkt
    aufzurufen. Wie müsste man das denn genau
    machen?

    freundliche Grüsse

  4. #4
    Registrierter Benutzer Avatar von Iluminat23
    Registriert seit
    Mar 2003
    Beiträge
    1.087
    entweder du kannst den absoluten pfad zu dem script angeben, oder du musst in deinem script raus finden wo "du" bist.

    wenn du english kannst ist hier ein thread welches genau dieses problem behandelt: http://hintsforums.macworld.com/arch...p/t-73839.html

    ich bin nicht der große scripter, eventuell findet sich jemand anders hier im forum der dafür eine einfach und saubere lösung kennt.

    Gruß
    iluminat23
    Wer Rechtschreibfehler findet, darf diese behalten. Legasthenie
    Oh Herr, meine Überlegenheit wird mir langsam zur Last.
    Ruf mich zurück!
    -- Dr. Perry Cox

  5. #5
    Registrierter Benutzer Avatar von jeebee
    Registriert seit
    Jan 2005
    Ort
    Bern || Zürich
    Beiträge
    275
    Mit
    Code:
    dirname $0
    kannst du innerhalb des ersten Skripts den Pfad zum Ordner wo das Skript liegt herausfinden.

    Also
    Code:
    #!/bin/sh
    `dirname $0`/verzeichnis2/shell2.sh
    HTH
    --jeebee
    Ubuntu 11.10/GNOME 3 on ThinkPad T60p | Ubuntu 11.10/GNOME 3 on ThinkPad X301 | Ubuntu 11.04 & Windows 7 on Asus P8Z68-V PRO + Core i7 2600K

  6. #6
    Registrierter Benutzer
    Registriert seit
    Apr 2012
    Beiträge
    14
    Da bekomme ich leider "Datei oder Verzeichnis nicht gefunden".

    freundliche Grüsse

  7. #7
    Registrierter Benutzer Avatar von Iluminat23
    Registriert seit
    Mar 2003
    Beiträge
    1.087
    Zitat Zitat von jeebee Beitrag anzeigen
    Mit
    Code:
    dirname $0
    kannst du innerhalb des ersten Skripts den Pfad zum Ordner wo das Skript liegt herausfinden.

    Also
    Code:
    #!/bin/sh
    `dirname $0`/verzeichnis2/shell2.sh
    das geht aber nur, wenn man das script nicht über $PATH aufruft.

    Gruß
    iluminat23
    Wer Rechtschreibfehler findet, darf diese behalten. Legasthenie
    Oh Herr, meine Überlegenheit wird mir langsam zur Last.
    Ruf mich zurück!
    -- Dr. Perry Cox

  8. #8
    Registrierter Benutzer Avatar von Iluminat23
    Registriert seit
    Mar 2003
    Beiträge
    1.087
    Zitat Zitat von endy66 Beitrag anzeigen
    Da bekomme ich leider "Datei oder Verzeichnis nicht gefunden".
    kannst du nicht mal mehr infos geben, dass kann ein tippfehler sein oder ein sonstiges problem. ohne mehr infos können wir auch nur raten.

    Gruß
    iluminat23
    Wer Rechtschreibfehler findet, darf diese behalten. Legasthenie
    Oh Herr, meine Überlegenheit wird mir langsam zur Last.
    Ruf mich zurück!
    -- Dr. Perry Cox

  9. #9
    Rain_maker
    Gast
    Zitat Zitat von endy66 Beitrag anzeigen
    Da bekomme ich leider "Datei oder Verzeichnis nicht gefunden".
    Dann machst Du was falsch:

    Code:
     ls /tmp/foo/ -R
    /tmp/foo/:
    bar  foo.sh
    
    /tmp/foo/bar:
    bar.sh
    
    cat /tmp/foo/foo.sh
    
    #!/bin/bash
    
    echo "this is $0"
    
    `dirname $0`/bar/bar.sh
    
    exit 0
    
    cat /tmp/foo/bar/bar.sh 
    
    echo "and this is $0"
    
    exit 0
    
    /tmp/foo/foo.sh 
    
    this is /tmp/foo/foo.sh
    and this is /tmp/foo/bar/bar.sh
    Works for me (tm).

    //Edit.

    Funtioniert auch über $PATH (why not?).

    Code:
    # cp /tmp/foo/* -r /usr/local/bin
    
    # foo.sh 
    this is /usr/local/bin/foo.sh
    and this is /usr/local/bin/bar/bar.sh
    Geändert von Rain_maker (14.04.12 um 17:30 Uhr)

  10. #10
    Registrierter Benutzer
    Registriert seit
    Apr 2012
    Beiträge
    14
    Gibt es da nicht eine einfach Möglichkeit, ein script
    direkt aus einem Unterverzeichnis, in dem ich mich
    nicht befinde, starten zu können?

    freundliche Grüsse

  11. #11
    Bastard User From Hell Avatar von kreol
    Registriert seit
    Oct 2004
    Beiträge
    7.968
    iluminat23 in #4: Da steht was von "absoluter Pfad". Wo ist das Problem?

    Poste Befehl und Meldung doch im Wortlaut, evtl. ist es wirklich nur ein Typo. aber auch das hat iluminat23 schon erbeten.

    Kreol
    Beim posten von Dateien oder Ausgaben bitte [code]Text[/code] verwenden. Nähere Info über vB-Tags gibt es hier

    I just want to know God's thoughts. The rest are details. (A. Einstein)

  12. #12
    Codefuzzy Avatar von Efraim
    Registriert seit
    Jun 2010
    Beiträge
    440
    Ob er es hier begreift? Dort war es irgendwie Zwecklos:

    http://www.linuxmintusers.de/index.p...59058#msg59058

  13. #13
    Rain_maker
    Gast
    Zitat Zitat von Efraim Beitrag anzeigen
    Ob er es hier begreift? Dort war es irgendwie Zwecklos:
    Naja, dann weiß man zumindest, womit man keine Zeit mehr verschwenden muss.

    Aber ein wenig Zeit muss ich dann doch "verschwenden", denn
    beim Lesen von #12, genauer bei diesem schönen Zitat

    Code:
    LMDE ~ # sudo mkdir /usr/local/bin
    fiel mir fast das Gebiss vor Lachen heraus (und NEIN, ich habe noch keine "Dritten" :-)).

    Jetzt weiß ich endlich, was ein Moderator in einem anderen Forum mit dem Satz

    Zitat Zitat von Wolfgang (UB)
    Ganze Generationen sind überzeugt, dass vor jedem root-Befehl ein sudo kommt.
    meinte.

    Greetz,

    RM

  14. #14
    Registrierter Benutzer Avatar von framp
    Registriert seit
    Jun 2005
    Ort
    bei Stuttgart
    Beiträge
    374
    Zitat Zitat von Rain_maker Beitrag anzeigen
    Dann machst Du was falsch:
    Richtig. Bei mir funktioniert es auch.
    Code:
    framp@obelix ~/test $ ./shell1.sh; find . -name "shell*.sh" -exec cat {} \;
    Executing ./shell1.sh
    Executing ./verz/shell2.sh
    #!/bin/sh
    echo "Executing $0"
    ./verz/shell2.sh
    #!/bin/sh
    echo "Executing $0"
    Irgendwie verstehe ich auch nicht ganz warum um absoluten und relativen Pfad diskutiert wird. Wenn ich mich mit shell1.sh in . befinde und unter . etwas aufrufen will, dann benutze ich ./ver/shell2.sh und gut ist.

Ähnliche Themen

  1. Per SSH einen Befehl remote mittels Skript ausführen?
    Von Die Borg im Forum System installieren und konfigurieren
    Antworten: 9
    Letzter Beitrag: 18.11.04, 20:24
  2. Externe Programme und nicht die Shell nach /bin/login ausführen (evtl mit PAM)?
    Von T0MM im Forum System installieren und konfigurieren
    Antworten: 0
    Letzter Beitrag: 10.11.03, 14:16
  3. Bei Shell start programm ausführen?
    Von boutta im Forum Linux Allgemein
    Antworten: 4
    Letzter Beitrag: 04.10.03, 12:52
  4. Wieso Shell ?
    Von mister l im Forum Linux Allgemein
    Antworten: 15
    Letzter Beitrag: 10.08.02, 00:33
  5. cron jobs | shell jede 5min ausführen.
    Von morpheus2001 im Forum Linux als Server
    Antworten: 2
    Letzter Beitrag: 02.01.02, 00:19

Lesezeichen

Berechtigungen

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