[AppleScript:]Mehrzeiliges Skript mit "do shell script" einbinden

Dieses Thema im Forum "Scripting und Automatisierung" wurde erstellt von maceis, 23.03.2007.

  1. maceis

    maceis Thread Starter MacUser Mitglied

    Beiträge:
    16.645
    Zustimmungen:
    596
    MacUser seit:
    24.09.2003
    Hallo zusammen,

    meine Frage lässt sich schon dem Titel entnehmen.

    Wie kann ich mehrzeilige Skripte (oder Kommandos mit Schleifen) mithilfe von "do shell scrip" in ein AppleScript einbinden.
    Dabei ist zu berücksichtigen, dass die Skripte " enthalten können, die ja vor AppleScript versteckt werden müssen.
    Wei macht man das?

    (Und noch eine Frage am Rande: wie beende ich ein laufendes Applescript aus dem Script heraus - also eine Abbruchkommando für das Skript?)
     
  2. little_pixel

    little_pixel MacUser Mitglied

    Beiträge:
    3.807
    Zustimmungen:
    940
    MacUser seit:
    06.06.2006
    Hallo Maceis,

    Code:
    set meinSH to do shell script ¬
    	"ls;
                  ls;
                  ls"
    
    Viel Erfolg!
     
  3. maceis

    maceis Thread Starter MacUser Mitglied

    Beiträge:
    16.645
    Zustimmungen:
    596
    MacUser seit:
    24.09.2003
    Danke.

    Ich hätte da nur zwei Fragen:
    1. Wie sage ich Appleskript, dass eine bestimmte Shell verwenden werden soll (beisielsweise /bin/zsh oder /bin ksh).
    2. Wie kann ich Anführungszeichen (") innerhalb der "do shell script"-Komandos benutzen; also beispielsweise so etwas:
    Code:
    set result to do shell script "a='/zwei worte' && if [ -d [color=red]"[/color]$a[color=red]"[/color]"] then ... 
    Ich nehme an, die müssen irgendwie gequotet werden.
    Bei "POSIX path" gibt es ja die Möglichkeit "quoted form of" zu verwenden, aber zum einen ist das eher unpraktisch und zum anderen geht das halt auch nicht immer.
     
  4. chebfarid

    chebfarid MacUser Mitglied

    Beiträge:
    894
    Zustimmungen:
    75
    MacUser seit:
    05.10.2005
    Ciao Maceis,
    für das "ausquoten" in Applescript wird der Backslash verwendet:

    Code:
    set unixCode to "a='/zwei worte' && if [ -d [COLOR="Red"]\[/COLOR]"$a[COLOR="red"]\[/COLOR]"]..."
    set x to (do shell script unixCode)
    Auf die erste Frage weiß ich leider keine Antwort, sofern sich die Shell direkt mittels Unix-Code definieren läßt, müßte man wahrscheinlich das entsprechende Kommando als erste Zeile ins shell script einfügen.

    Frohes scripten
    Farid
     
Die Seite wird geladen...

Diese Seite empfehlen