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

  1. maceis

    maceis Thread StarterMacUser Mitglied

    Mitglied seit:
    24.09.2003
    Beiträge:
    16.696
    Zustimmungen:
    602
    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?)
     
    maceis, 23.03.2007
  2. little_pixel

    little_pixelMacUser Mitglied

    Mitglied seit:
    06.06.2006
    Beiträge:
    4.010
    Zustimmungen:
    1.002
    Hallo Maceis,

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

    maceis Thread StarterMacUser Mitglied

    Mitglied seit:
    24.09.2003
    Beiträge:
    16.696
    Zustimmungen:
    602
    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.
     
    maceis, 24.03.2007
  4. chebfarid

    chebfaridMacUser Mitglied

    Mitglied seit:
    05.10.2005
    Beiträge:
    894
    Zustimmungen:
    75
    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
     
    chebfarid, 24.03.2007
Die Seite wird geladen...