AppleScript: do shell script "mit ätzenden Zeichen"

KlausKinski

KlausKinski

Mitglied
Thread Starter
Dabei seit
24.10.2009
Beiträge
94
Reaktionspunkte
2
Hi; ein AppleScript soll folgenden Terminalbefehl ausführen:

do shell script "/zz/OnlineTvRecorderCom/3\)\ otrdecoder -i /\ EINZUORDNENDES/XXXXXXXXXX -o /Volumes/WDC/\ EINZUORDNENDES -e"

Terminal hat keine Probleme mit den Befehlen "in den Gänsefüßchen", aber AppleScript meldet nur »Unbekanntes Token wurde gefunden«.

Wie also muss ich die Sonderzeichen umschreiben?
 
Also so ...

do shell script "'/zz/OnlineTvRecorderCom/3) otrdecoder' -i '/ EINZUORDNENDES/xxxxx -o '/Volumes/WDC/ EINZUORDNENDES' -e"

... erscheint nur:

error
sh: -c: line 0: unexpected EOF while looking for matching `''
sh: -c: line 1: syntax error: unexpected end of file


Des kappich ned.
 
da fehlt ja auch noch ein '
Ich zähle dort nur 5 und nicht 6
 
  • Gefällt mir
Reaktionen: KlausKinski
pack es doch komplett statt einzeln in ' '
'/zz/OnlineTvRecorderCom/3) otrdecoder -i / EINZUORDNENDES/xxxxx -o /Volumes/WDC/ EINZUORDNENDES -e'
kann aber sein, dass die ) da ärger macht, also die dann eventuell als \\)

oder benenn doch mal deine ganzen ordner und files ohne solche schmankerln wie leerzeichen und klammern ;)
 
  • Gefällt mir
Reaktionen: KlausKinski
Danke, Noodyn, nach xxxxx fehlte ein »'«. Pardon.

benenn doch mal deine ganzen ordner und files ohne solche schmankerln wie leerzeichen und klammern ;)
Nee, nee, nee. ^^ Da lass ich mir keine Benennungs-Freiheiten nehmen. Und die gehn vor. Lieber dein »\\« nutzen etc. Danke!
;)

Okay, was ich wollte, klappt soweit. Allerdings wird das ShellScript so ausgeführt, dass es nicht im Terminal erscheint. Daher will ich nun lieber das Terminal sichtbar in den Vordergrund holen — mitsamt der Befehlszeile, sodass ich nur noch RETURN tippen brauch, um es loszuschicken:

tell application "Terminal"
activate
end tell

tell application "System Events"
tell (1st process whose name is "Terminal") to set its frontmost to true
end tell


... und daran folgt statt »do shell script...« ein AppleScriptBefehl, der den TerminalBefehl hineintippt. Doch welcher AppleScriptBefehl kann etwas hineintippen?
 
Code:
[B][B]set[/B] [COLOR=#349600]mycommand[/COLOR] [B]to[/B] "echo 1; sleep 1; echo 2; sleep 1; echo 3; sleep 1;"


[COLOR=#5e6161]-- don't edit --[/COLOR]
[B]set[/B] [COLOR=#349600]myscript[/COLOR] [B]to[/B] "clear; read -p 'Taste...' -n 1; echo; (" & [COLOR=#349600]mycommand[/COLOR] & ") && exit"


[/B][B]tell[/B] [COLOR=#0000ff][I]application[/I][/COLOR] "Terminal"
[COLOR=#0000ff][B]     activate[/B][/COLOR]
[COLOR=#0000ff][B]     do script [/B][COLOR=#349600]myscript[/COLOR][/COLOR]
[B]end[/B] [B]tell[/B]
 
  • Gefällt mir
Reaktionen: KlausKinski
Hm. Kann AS nicht einfach Text ins Terminal pasten? Etwa so:

tell application "Terminal"
activate
delay 1
paste "hallo welt" -- Geht nich. Wie dann?
end tell


... geht leider nich.
 
alles was du dort hinschreiben willst musst du halt mit
do script "echo 'hello world'"
machen...
 
^^

Ah so! Einfach nur do script (ohne shell) und es wird im Terminal sichtbar. Damit geht's:

Code:
tell application "Terminal"
	activate
	delay 1
	do script "'/zz/OnlineTvRecorderCom/3) otrdecoder' -i '/ EINZUORDNENDES/'" & theName & " -o '/Volumes/WDC/ EINZUORDNENDES' -e"
end tell

Danke Euch allen! Ihr wart wieder mal lehrreich.
:cake:

Nur noch letzte Frage. Es öffnet da jedesmal ein neues Terminalfenster (ttys001, 002, 003 usw.). Wieso bleibt das nich im voreingestellten Hauptfenster (ttys000)? Muss ich da noch was hinzuskripten?
 
do script "..." in tab 4 of window 1
oder
do script "..." in (get last tab of last window)

Ich mach lieber ein neues Fenster auf und im Erfolgsfall wieder zu mit »(...) && exit«.
Und dann könnte man auch noch die otrkeys löschen lassen.

Nur zur Ergänzung, wegen »paste«:
Du kannst noch mit "System Events/keystroke ..." arbeiten.
Geht halt daneben, wenn du zwischendrin den Focus wegklickst und ist wirklich nur die allerletzte Notlösung.

Schau dich mal im AS-Editor/Fenster/Bibliothek um. Du kannst auch fehlende Apps wie Terminal hinzufügen.
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: KlausKinski
Zurück
Oben Unten