2013-10-18 66 views
1

我試圖在MAC終端中運行一個shell腳本。我想打開一個新的終端窗口,它將執行與正在運行的程序分開的腳本。在Fedora中,有一個gnome-terminal命令可以讓我在另一個終端shell中執行腳本。Mac:與shell腳本相同的gnome-terminal

有誰知道MAX OSX上的等價物以及如何使用它?

例如說我有一個腳本crazy.sh,我想從正在執行的程序中調用它,但是在與當前正在執行該程序的終端分離的終端中調用此程序。

+1

在Mac上並不那麼容易。你想要shell腳本的結果嗎?如果是這樣,使用'popen()'。如果不使用'system()'。 – trojanfoe

+0

nope,我不關心腳本的輸出。只需要運行。但系統調用它在同一個進程內,並將輸出打印到同一個終端窗口,這是我不想要的。它淹沒輸出 – Edwin

回答

2

一種方式來做到這一點是使用xterm,而不是終端窗口:

xterm -e crazy.sh 

如果你想在xterm保持開放劇本完成後,使用-hold選項的xterm。


但如果你真的需要這樣做在終端,你可以使用AppleScript做到這一點:

tell application "Terminal" 
    activate 
    tell application "System Events" to keystroke "n" using command down 
    repeat while contents of selected tab of window 1 starts with linefeed 
     delay 0.1 
    end repeat 
    do script "crazy.sh" in window 1 -- make sure the path to your script is right 
end tell 

(信用答案在這裏https://superuser.com/questions/466619/open-new-terminal-tab-and-execute-script

4

我喜歡DigitalTrauma的答案,但我發現我的使用,這工作更好

open -a Terminal.app crazy.sh 

感謝您的答案。