command cd im script

Dieses Thema im Forum "Mac OS X - Unix & Terminal" wurde erstellt von orion, 25.08.2004.

  1. orion

    orion Thread Starter MacUser Mitglied

    Beiträge:
    95
    Zustimmungen:
    0
    MacUser seit:
    19.04.2003
    habe in einem script den command "cd /irgendein verzeichnis" eingesetzt.
    Danach weitere Befehle, die auch mit gewechseltem Verzeichnis durchgeführt werden. Beim Verlassen des scripts bin ich aber wieder im ursprünglichen Verzeichnis. Wie kann ich das Verzeichnis aber über ein script endgültig wechseln?

    danke orion
     
  2. canfAN

    canfAN MacUser Mitglied

    Beiträge:
    66
    Zustimmungen:
    0
    MacUser seit:
    06.02.2003
    Du musst das Skript in der selben Shell und nicht in einer Subshell ausführen.
    Das machst du indem du einen Punkt voranstellst (Leerzeichen danach beachten)

    Code:
    . /pfad/zu/deinem/skript
    
    Aufrufe in Form von ./programm, /usr/bin/programm oder sh programm rufen immer eine Subshell auf in der das Programm/Skript ausgeführt wird, Änderungen werden mit dem Beenden dieser Subshell und somit auch mit Ende des Programms verworfen.
     
  3. orion

    orion Thread Starter MacUser Mitglied

    Beiträge:
    95
    Zustimmungen:
    0
    MacUser seit:
    19.04.2003
    Code:
    . /pfad/zu/deinem/skript
    
    Leider wird der Punkt . als command pwd interpretiert und führt dann zu einer Fehlermeldung, weil er ja falsche Parameter mitbekommt.
     
  4. TheFallenAngel

    TheFallenAngel MacUser Mitglied

    Beiträge:
    501
    Zustimmungen:
    7
    MacUser seit:
    27.10.2003
    es muss heissen . ./script
     
  5. orion

    orion Thread Starter MacUser Mitglied

    Beiträge:
    95
    Zustimmungen:
    0
    MacUser seit:
    19.04.2003
    dann kommt halt eben diese Meldung

    usage: pwd [-LP]

    der Punkt . steht für pwd
     
  6. TheFallenAngel

    TheFallenAngel MacUser Mitglied

    Beiträge:
    501
    Zustimmungen:
    7
    MacUser seit:
    27.10.2003
    Hast du vielleicht einen alias gesetzt ? sitzt jetzt nicht am mac, aber hier unter Linux geht das so...
     
  7. orion

    orion Thread Starter MacUser Mitglied

    Beiträge:
    95
    Zustimmungen:
    0
    MacUser seit:
    19.04.2003
    nein, diesen alias habe ich nicht gesetzt, das ist vorgegeben beim Mac.
     
  8. orion

    orion Thread Starter MacUser Mitglied

    Beiträge:
    95
    Zustimmungen:
    0
    MacUser seit:
    19.04.2003
    jetzt habe ich die Lösung:

    der Aufruf, der das script veranlasst keine subshell aufzurufen lautet

    source pfad/zum/script
     
  9. TheFallenAngel

    TheFallenAngel MacUser Mitglied

    Beiträge:
    501
    Zustimmungen:
    7
    MacUser seit:
    27.10.2003
    so extra am mac getestet, ich habe keinen alias auf ".".

    Wuerde meiner Meinung nach auch keinen Sinn machen, weil du nichtmal mehr Programme mit ./Programm starten koenntest.
     
  10. orion

    orion Thread Starter MacUser Mitglied

    Beiträge:
    95
    Zustimmungen:
    0
    MacUser seit:
    19.04.2003

    Mit "./skript" wird Skript in subshell durchgeführt
    Mit "source skript" wird Skript in aufrufender Shell abgearbeitet
    Mit "." allein wird pwd durchgeführt.
    Mit ". ./skript" wird pwd durchgeführt mit Parameter "./skript" was zu
    einem fehler führt.
    So ist es bei mir.

    Vielen Dank
     
Die Seite wird geladen...
Ähnliche Themen - command script
  1. lazybaer
    Antworten:
    6
    Aufrufe:
    463
    trixi1979
    26.12.2015
  2. lazybaer
    Antworten:
    1
    Aufrufe:
    795
    falkgottschalk
    05.05.2012
  3. patrick152
    Antworten:
    2
    Aufrufe:
    1.084
    falkoz
    26.03.2012
  4. Enti
    Antworten:
    5
    Aufrufe:
    1.485
    Enti
    05.03.2012
  5. Konze
    Antworten:
    17
    Aufrufe:
    2.113
    Konze
    04.10.2009