Applescript soll Terminal mit Textdatei füttern

F

follower

Neues Mitglied
Thread Starter
Dabei seit
09.11.2009
Beiträge
5
Reaktionspunkte
0
Hallo liebe Leute,

ich habe ein kleines Problem. Eigentlich eine einfache Sache, aber ich komme nicht weiter.

Die Situation

Ich generiere mit PHP eine Textdatei, die mehrere Terminal-Befehle enthält (die wiederum den Adobe After Effects Renderer "aerender" ansprechen).

Mit Applescript öffne ich Terminal und möchte hier nun diese Textdatei einlesen und ausführen.

Das Problem

Wenn ich den Code von Hand aus der Textdatei ins Terminal reinkopiere, klappt alles einwandfrei. Wenn ich aber jene Textdatei über das Applescript laden will, bekomme ich eine Fehlermeldung. Es muss also an der Art und Weise liegen, wie ich die Textdatei einlese.

Der wahrscheinlich fehlerhafte Code

Code:
tell application "Terminal"
   activate
   do script "/Users/xxx/Documents/TAGGING/NOW PLAYING/Terminal-Script.txt"	
end tell

Die Fehlermeldung von Terminal

Code:
-bash: /Users/xxx/Documents/TAGGING/NOW: No such file or directory

Meine Vermutung
Die Leerzeichen-Formatierung ist falsch...

Kann mir jemand helfen?

Vielen Dank!
 
entweder mit ' einschliessen oder halt die leerzeichen mit \ escapen...

do script "'/Users/xxx/Documents/TAGGING/NOW PLAYING/Terminal-Script.txt'"
oder
do script "/Users/xxx/Documents/TAGGING/NOW\ PLAYING/Terminal-Script.txt"
 
Super!
Mit ' einschließen hat funktioniert!

Jetzt erscheint leider die Fehlermeldung:

Code:
-bash: /Users/xxx/Documents/TAGGING/NOW PLAYING/Terminal-Script.txt: Permission denied

Ich habe in den Eigenschaften der Textdatei (Apfel-I) alle Rechte auf "Lesen & Schreiben" gestellt, dennoch kommt die Fehlermeldung...

Hast du eine Vermutung, woran das liegt?
 
da fehlt das executable bit, kannst du im terminal mit chmod setzen...
 
da fehlt das executable bit, kannst du im terminal mit chmod setzen...

hmm... wo genau schreibe ich das denn hin?

am ende soll es ja so sein, dass ich gar nichts mehr im terminal schreiben muss. deshalb mache ich ja das applescript, sprich ein ausführbares programm, das mir das terminal öffnet und den code aus der textdatei einliest.

mit anderen worten, dieses "chmod" muss sich im applescript befinden.

mein versuch war sowas wie:

Code:
tell application "Terminal"
	activate
	chmod +x "'path_to_textfile/textfile.txt'"
	do script "'path_to_textfile/textfile.txt'"
end tell

aber das stimmt offensichtlich vorne und hinten nicht.

sorry, dass ich dich damit belästige. hätte auch nicht gedacht, dass ein so simples skript so schwierig ist.
 
chmod ist ein unix befehl, kein applescript.
do shell script "chmod a+x 'path_to_textfile/textfile.txt'"
 
ah ok cool!
jetzt kommt keine fehlermeldung mehr.

dafür wird aber auch leider der code in meiner textdatei nicht ausgeführt.

der einfachheit halber habe ich den inhalt der textdatei mal auf
Code:
say "hello"
beschränkt. aber da passiert nichts.

muss ich in der textdatei selbst auch noch irgendwas reinschreiben bzw. muss die irgendwie besonders formatiert sein?

danke nochmal für deine hilfe!
 
wenn das ein script sein soll, dann muss in der ersten zeile die ausführende shell stehen:
#!/bin/bash

oder du rufst es halt über die shell auf:
do shell script "sh 'path_to_textfile/textfile.txt'"
so kannst dir auch das chmod sparen...
 
super!
so hat es funktioniert.
tausend dank!
 
Zurück
Oben Unten