有没有一种方法能够在单个脚本中打开一系列的新终端窗口并运行命令?

4

每天我都要执行以下命令:

[0] 启动终端

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

这些步骤能否在一个脚本中完成?每次重新启动系统时,我都快疯了。


什么是标签页?如果您正在使用屏幕,则可以在.screenrc文件中完成此操作。如果您正在使用GUI伪终端(例如gnome-terminal,不确定OS X的等效名称),则每个标签页都会生成一个新的bash实例。bash对此不知情。 - Oscar Korz
只是为了澄清,在屏幕上每个新的选项卡也是一个单独的 bash 实例。在任何情况下,bash 都不知道选项卡。 - Oscar Korz
是的。需要一个新的 bash 实例,这样苹果标签就可以为我们处理它们。 - JZ.
我指的是GNU screen,它是一个终端程序。我的意思是,你想做的事情需要放在你正在使用的任何X/GUI终端仿真器的rc文件中。bash本身没有选项卡,因此bash脚本不会实现这一点(除非bash脚本自己生成终端仿真器)。 - Oscar Korz
2个回答

10

创建一个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

将它保存为应用程序,这样您就可以双击它来运行。您还可以将其指定为在系统启动时启动,甚至使用必要的第三方程序创建快捷方式。


以下是如何使用AppleScript的方法... http://alvinalexander.com/blog/post/mac-os-x/applescript-save-script-as-application - Alexander Mills

0

如果您不介意使用xterm作为终端,您可以在您的shell脚本中这样做:

xterm -e $command

你也可以使用Mac独有的open命令:

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

你可以将命令及其参数放在一个单独的脚本文件中,然后将其传递给 open - tripleee

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接