Terminal-Fenster automatisch schließen


DaRealMC

Erfahrenes Mitglied
Ich habe ein kleines Script geschrieben, was nun für alle User im Autostart hängt.
Script ist in einer "autorun.command" abgespeichert.
Das Ausführen des Scripts klappt auch wunderbar, aber leider wird das Fenster danach nicht geschlossen. Kann ich in meinem Script noch einen Befehl mitgeben, so dass das geöffnete Terminal-Fenster automatisch nach Ausführung geschlossen wird?
 

DaRealMC

Erfahrenes Mitglied
Jo, an Applescript hab ich auch schon gedacht. Dieses wiederum stellt aber wenn's im Autostart ist dem User die Frage, ob's ausgeführt werden soll oder nicht.
 

Erpel

Erfahrenes Mitglied
Passiert das auch wenn du das Skript als application (.app) speicherst und in die Startup Items packst? Normale Programme starten da ja einfach.
Ansonsten kannst du deinem shell-Skript eine Zeile anhängen die, wieder über Applescript, das Terminal beendet. Ungefähr so:
Code:
osascript -e 'tell app "Terminal" to quit'
Das fragt dann aber nach ob es beenden soll. Die Antwort darauf ließe sich sicher auch automatisieren, aber das is mehr Arbeit.
Anderer Weg wäre die Prozess ID von Terminal herauszufinden und freundlich mit kill -3 abschießen. Bzw. ein
Code:
killall Terminal
an dein Skript zu hängen.
 

DaRealMC

Erfahrenes Mitglied
Hmmm... auf die Idee mit dem Kill bin ich noch nicht gekommen :)

Naja, werd's nach meinem Urlaub mal testen.
Danke
 

stEEdZ

Mitglied
Hallo und sorry das ich den alten Thread hier nochmal auspacke,
ich stehe vor einem ähnlichen Problem.

Ich arbeite derzeit mit Photoshop Skript, bearbeite allerdings die Xmp Metadaten über das Xmp Sdk via C++. Nun öffnet sich leider, wenn ich aus dem Ps-Script die C++ Funktionen aufrufe ein Terminal welches sich leider auch nicht von selber schließt.

Nun habe ich aufgrund dieses Artikels hier ein "do shell script" Applescript gebaut welches auch genau so funktioniert wie ich es haben will! Soweit schonmal vielen Dank!
Code:
do shell script "cd /Applications/Adobe\\ Photoshop\\ CS3/Xmp/Mac; ./dumpXmp"
Jetzt müsste ich aber ein paar Dinge erweitern und hoffe hier auf Hilfe... :rolleyes:

Eigentlich stehe ich nur vor einem großen Problem, die Pfadangabe zu meiner ausführbaren C++ Datei müsste variabel sein. Hier mal ein Beispiel wie ich aus einem ps-script das File aufrufe:
Code:
var xmp= new File(psPath + "/Xmp/Mac/dumpXmp"); 
xmp.execute();
Wie man sieht habe ich immer die psPath Variable mit im Pfad. Das bedeutet aber leider dass ich das Applescript zur Laufzeit generieren muss. Das beinhält 2 Probleme mit denen ich nicht klar komme...
Code:
var psPath = getPath();
var scpt = new File( $.getenv("HOME") + "/xmpStuff.scpt"); 
  scpt.open("w"); 
  scpt.writeln("do shell script \"cd /Xmp/Mac/ ./pushXmp\"");
  scpt.close(); 
  scpt.execute();
Dies wäre der Code wie ich das Applescript zur Laufzeit generieren kann, wie bekomme ich da jetzt die psPath Variable mit in den Pfad hinein? Das zweite Problem ist, dass ich das Applescript als Programm-Bundle mit Endung ".app" speichern müsste inklusive der "Nur ausführbar" Option. :(

Hat da jemand Ahnung wie das funktionieren könnte, oder vielleicht sogar nen ganz andern Lösungsansatz?

Vielen Dank für die Hilfe im Voraus
steedz