我試圖在MAC終端中運行一個shell腳本。我想打開一個新的終端窗口,它將執行與正在運行的程序分開的腳本。在Fedora中,有一個gnome-terminal命令可以讓我在另一個終端shell中執行腳本。Mac:與shell腳本相同的gnome-terminal
有誰知道MAX OSX上的等價物以及如何使用它?
例如說我有一個腳本crazy.sh,我想從正在執行的程序中調用它,但是在與當前正在執行該程序的終端分離的終端中調用此程序。
我試圖在MAC終端中運行一個shell腳本。我想打開一個新的終端窗口,它將執行與正在運行的程序分開的腳本。在Fedora中,有一個gnome-terminal命令可以讓我在另一個終端shell中執行腳本。Mac:與shell腳本相同的gnome-terminal
有誰知道MAX OSX上的等價物以及如何使用它?
例如說我有一個腳本crazy.sh,我想從正在執行的程序中調用它,但是在與當前正在執行該程序的終端分離的終端中調用此程序。
一種方式來做到這一點是使用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)
我喜歡DigitalTrauma的答案,但我發現我的使用,這工作更好
open -a Terminal.app crazy.sh
感謝您的答案。
在Mac上並不那麼容易。你想要shell腳本的結果嗎?如果是這樣,使用'popen()'。如果不使用'system()'。 – trojanfoe
nope,我不關心腳本的輸出。只需要運行。但系統調用它在同一個進程內,並將輸出打印到同一個終端窗口,這是我不想要的。它淹沒輸出 – Edwin