per script terminalbefehl ausführen

mallwart

Aktives Mitglied
Thread Starter
Dabei seit
04.08.2003
Beiträge
187
Reaktionspunkte
0
gibt es eine möglichkeit mit einem script
1) ein terminal-fenster zuöffnen ( tell?)
2) in diesem fenster einen befehl ausführen zulassen ( z.z. mache ich das mit copy|past , was mich einfach nervt )
3) wieder zum finder zurückzukehren ?
 
...

Hallo mallwart,

ja das geht mit dem Befehl "do shell script" gefolgt von Deinem Terminalbefehl.
Die umgekehrte Richtung wäre "osascript" gefolgt von einem Applescript im Terminal (man osascript)

Um ein Terminalfenster zu bekommen musst Du den Befehl an das Terminal senden.

ein kleines Beispiel, wie es ungefähr funktioniert:

tell application "Terminal"
activate
set myShellScript to "osascript -e 'tell app \"Finder\" to activate'"
do shell script myShellScript
end tell

Der Befehl "do shell script" kann aber auch direkt ausgführt werden.
Kritisch wird es wegen Zeitüberschreitungen. Da musst Du fummeln.

Was solls werden? ;)

Gruß Andi
 
etwas ganz profanes – ich möchte wissen , wo e.t. wohnt und lasse deshalb im terminal setiathome laufen . dazu muss folgendes ans terminal ( nein ich will nicht in die crontab , sondern einfach nach laune/bei bedarf starten ) übergeben werden:
» /Applications/systempflege/setiathome_darwin/setiathome -nice 1 -verbose«
 
...

Hallo mallwart,

dann sollte ja:

do shell script "/Applications/systempflege/setiathome_darwin/setiathome -nice 1 -verbose"

reichen..

Gruß Andi
 
sollte , tut es aber leider nicht .
das script hat folgenden inhalt:
<
tell application "Terminal" activate
do shell script "/Applications/systempflege/setiathome_darwin/setiathome -nice 1 -verbose"
end tell
>

der befehl an sich funktioniert im terminal , aber wenn ich ihn in ein script einbaue und das script starte , passiert folgendes :
das terminal startet und hängt sich dann auf . beim genaueren hinschauen ist dann auch die fehlermeldung zu lesen , nämlich das die apllikation nicht auf bestimmte files zugreifen kann ( in meinem fall setiathome und seine *.sah-files ) weil diese in gebrauch sind . kann aber nicht sein , denn ich starte die app ja gerade . leider sind die zerstörungen des scriptes bei den file-attributen so stark , dass ich seti immer wieder neu installieren muss .
fazit: ich bleibe vorerst bei copy|past .
obwohl mich schon interessieren würde , was ich falsch mache bei 3 code-zeilen ?
 
'do shell script' ist der Befehl, wenn man kein Terminal benutzen will. - Also ein Shell-Script direkt aus AppleScript heraus ausführen.

Wenn's im Terminal sein soll, benutzt man "do script" gefolgt vom Scripttext.

Dein AppleScript könnte demnach so aussehen:

do shell script "/Applications/systempflege/setiathome_darwin/setiathome -nice 1 -verbose"

oder so:

tell application "Terminal"
activate
do script "/Applications/systempflege/setiathome_darwin/setiathome -nice 1 -verbose"
end tell
 
danke snow carro , genau das war's , mein script arbeitet wunderbar .
und wieder etwas dazu gelernt .
ich liebe diese forum clap

ps: gibt's zufällig noch eine gute buchempfehlung »apple script für einsteiger?
 
...

Hallo mallwart,

tut mir leid. Snow hat recht. "do script" im Terminal... Ich habs zwar probiert und mein Beispiel funktioniert auch - was solls, Hauptsache Dein Problem ist gelöst.

Gruß Andi
 
kein grund zur sorge oder gar anlass schlafloser nächte , dein tipp war doch gut . außerdem hat er mir gezeigt :
a) wo gibt's hilfe
b) versuch's einfach und lass' nicht locker .
deshalb natürlich auch dank an dich .
 
Zurück
Oben Unten