carl7n
Goto Top

AppleScript öffne zwei Terminal-Fenster mit Befehl und Position

Hallo,

ich versuche gerade, meine Arbeitsabläufe zu automatisieren. Per Automator soll dazu ein AppleScript ausgeführt werden, welches zwei Terminal-Fenster öffnet, beide Fenster per SSH mit einem Server verbindet und die Fenster jeweils links und rechts vom Bildschirm anheftet.

Aktuell bin ich soweit, dass sich die Terminal-Fenster öffnen lassen und zu den Servern verbunden wird. Allerdings werden die Terminals im Hintergrund geöffnet; da der Browser einen Großteil des Bildschirms einnimmt, ist das unpraktisch. Außerdem liegen sie exakt übereinander. Bevor ich also arbeiten kann, muss ich erst eins der Fenster verschieben.

Das Script hierfür sieht so aus

tell application "Terminal"  
    set newTab to do script ("ssh ilike@pi")  
    set newTab to do script ("ssh scruffy@nerfherder")  
end tell

Ist es möglich, _auf einfache Art und Weise_ die Fenster gleich mit zu positionieren? Ich habe schon ein paar Lösungen gegoogelt, diese Beziehen sich allerdings nur auf ein Fenster, welches sich bereits im Vordergrund befindet; hier muss ja auf zwei Fenster zugegriffen werden, die sich im Hintergrund befinden. Mir ist auch nicht ganz klar, wie man jeweils eins der Fenster anspricht, da es sich ja beide Male um das Terminal handelt und die Fenster nicht eindeutig "zugeordnet" werden können. Zumindest aus meiner Laien-Perspektive.

Freue mich über jeden Tipp.

Danke & LG

Content-Key: 265294

Url: https://administrator.de/contentid/265294

Printed on: April 16, 2024 at 09:04 o'clock

Mitglied: 114757
Solution 114757 Mar 05, 2015 updated at 07:44:19 (UTC)
Goto Top
Member: carl7n
carl7n Mar 05, 2015 at 07:46:45 (UTC)
Goto Top
Thank you kindly.

Das ist so tatsächlich viel einfacher.

Automator öffnet Terminal
AppleScript schließt Terminal-Window 1
AppleScript öffnet Fenstergruppe ssh
die der Fenstergruppe zugehörigen Profile verbinden sich automatisch mit den Servern

Jetzt muss ich nur noch einen Shell-Befehl finden, der ssh name@server ausführt und nach dem Verbinden "clear" sendet. Bislang ist es so, dass clear erst nach Disconnect vom Server ausgeführt wird. Habe im Hinterkopf, dass man das mit 'ENDSSH' irgendwie lösen kann, schaun wir mal.
Member: carl7n
carl7n Mar 05, 2015 at 08:49:55 (UTC)
Goto Top
Irgendwie klappt das nicht so richtig.

ssh name@server clear
-> TERM environment variable not set.

ssh name@server -t clear
Verbindung wird hergestellt, clear wird ausgeführt, dann
-> Connection to 192168.116.13 closed.

ssh name@server -o LocalCommand clear
command-line line 0: Missing argument.

Das ist jetzt eh nur eine kosmetische Sache, aber ich hätte sie gerne implementiert. Nachdem sich beide Fenster per SSH verbunden haben, möchte ich nicht schon ein Drittel des Terminals voll haben, sondern "clear" ausführen, um das Terminal zu säubern, nachdem ich mit dem Server verbunden bin. Ich google seit einer Weile und bin dran, freue mich aber parallel auch hier über HIlfe.
Member: colinardo
Solution colinardo Mar 05, 2015 updated at 16:40:53 (UTC)
Goto Top
Hallo carl7n,
solltest du hiermit hinbekommen ..
ssh -t user@server 'clear;bash'
Grüße Uwe
Member: carl7n
carl7n Mar 05, 2015 at 16:41:57 (UTC)
Goto Top
Bestens, so funktioniert es. Riesigen Dank.

Ich hatte es mit .hushlogin auf dem Server geregelt, Deine Lösung passt aber bei Weitem besser in meine Vorlage.