2011-10-26 53 views
2

每天我以下命令:有没有办法打开一系列新的终端窗口,并在单个脚本中运行命令?

[0]开始终端

  1. 打开窗口 - >memcached
  2. 打开窗口 - >redis-server
  3. 打开窗口 - >memcached
  4. 打开窗口 - >devo
  5. 打开窗口 - >cd /some/path
  6. /一些/路径$ - >rails s --port=3002
  7. 打开窗口 - >cd /other/path
  8. /其它/路径$ - >rails s --port=3000

可这些步骤在一个脚本来完成?每当我重新启动系统时,我都会迷失主意

+0

你是什么意思的标签?如果您使用屏幕,可以在.screenrc文件中完成。如果您使用的是GUI伪终端(例如gnome-terminal,不知道OS X等价物被称为什么),那么在每个选项卡中会生成一个新的bash实例。 bash不知道这一点。 –

+0

只是为了澄清,在屏幕上,每个新标签也是bash的单独实例。无论哪种情况,bash都不知道选项卡。 –

+0

是的。一个单独的bash新屏幕实例...苹果为我们选择了这些。 –

回答

8

创建一个applescript。你只需要运行的AppleScript,它会做所有你:

tell application "Terminal" 
    activate 
    do script "memcached" in window 1 
    do script "redis-server" -- Each do script opens a new window 
    do script "memcached" 
    do script "devo" 
    do script "cd " 
    do script "rails s --port=3002" in window 1 -- does script in last opened window 
    do script "cd " 
    do script "rails s --port=3000" in window 1 -- does script in last opened window 
end tell 

保存它作为一个应用程序,你可以双击它来运行它。您也可以将其分配为在系统启动时启动,甚至可以将其分配给具有必要第三方程序的快捷方式。

+0

这里是如何使用applescripts .... http:// alvinalexander。com/blog/post/mac-os-x/applescript-save-script-as-application –

0

好吧,如果你不介意使用xterm作为终端,你可以在你的shell脚本做到这一点:

xterm -e $command 

您还可以使用open命令,它是唯一到Mac:

open -a /Applications/Utilities/Terminal.app $command #Full pathname to $command! 

例如:

open -a /Applications/Utilities/Terminal.app /usr/bin/vim 

作品。

你也可以使用一个shell脚本:

open -a /Applications/Utilities/Terminal.app /home/david/foo.sh 

我还没有想出什么了是如何打开需要一个命令行参数的命令。如果你必须这样做,你必须坚持到xterm

+0

您可以将命令及其参数放入单独的脚本文件中,然后将其传递给'open'。 – tripleee

相关问题