2014-09-10 187 views
2

我有一個運行applescript的shell腳本。 applescript從終端執行,我希望終端在完成後關閉。執行後退出終端

在我的shell腳本中,我用這一行執行我的applescript。它打開一個終端,運行,然後終端就在那裏,即使蘋果已經完成。我有其他終端打開,我一直在使用,所以我不想關閉所有的終端,只有那一個。

osascript -e 'Tell application "Terminal" to do script "osascript ~/Scripts/reset_simulator.applescript"' 

感謝

回答

3

在你shell腳本,你執行

osascript -e 'Tell application "Terminal" to do script "osascript ~/Scripts/reset_simulator.applescript"' 

真正打開一個新的窗口Terminal.app。

你有什麼特別的理由打開一個新的終端窗口嗎?爲什麼不從你的shell腳本和當前窗口運行

osascript ~/Scripts/reset_simulator.applescript 

但是如果你想這樣的事情(對我聽起來怪)總是可以用下一:

osascript -e 'Tell application "Terminal" to do script "osascript ~/Scripts/reset_simulator.applescript;exit"' 
#note the "exit" here ---------------------------------------------------------------------------------^^^^^ 

改變首選項「關閉窗口」 shell退出時。

閱讀你上面的評論,聽起來比你想在「背景」中運行一些applescript。從你的shell腳本

osascript ~/Scripts/reset_simulator.applescript & 

2)

一)如果您想還是打開另一個終端窗口

osascript -e 'Tell application "Terminal" to do script "osascript ~/Scripts/reset_simulator.applescript&exit"' 
#note the & here --------------------------------------------------------------------------------------^ 
+0

我試着在沒有終端的情況下運行它,但是這個shell腳本是從TeamCity buildagent調用的,並且存在一些隱私/安全問題,不會讓applescript運行。 – 2014-09-10 20:00:39

+0

@ deluded12ga - 所以,我添加了另一個選項(見出口)。但是要明白,只有當'reset_simulator.applescript'完成時'exit'纔會被執行,正如@nneonneo在上面的評論中所說的那樣。 – jm666 2014-09-10 20:02:06

+0

非常感謝你! – 2014-09-10 20:04:25

1

在終端設置,更改下「殼 - >當shell退出」設置爲「關閉,如果外殼乾淨退出」。

Settings

+0

那並不是」:

所以,你可以做下一個。工作,嘗試了它。終端保持打開狀態。 – 2014-09-10 19:24:03

+0

是否在打開的窗口末尾顯示「[Process completed]」? – nneonneo 2014-09-10 19:24:48

+0

一旦腳本運行,它說「菜單項退出iOS模擬器菜單欄iOS模擬器iOS模擬器菜單欄iOS模擬器iOS模擬器應用程序iPhone模擬器1」 – 2014-09-10 19:25:42