问题描述
我可以启动命令行的xterm(或程序,通过系统调用),像这样:
的/ usr / X11 /斌/ xterm的-fg天蓝-bg黑色-e的MyScript
这将推出带有蓝色的文字和黑色背景一个xterm,并运行里面的任意脚本。
我的问题:我该怎么做,相当于用Terminal.app
假设你已经拥有你在你的终端一个配置文件所需的颜色,这里就是我想出了(从的并从this Serverfault回答)。
假设我们保存下面的脚本 term.sh
...
#!/ bin / sh的呼应
上运行的argv
如果argv的长度是等于0
set命令为
其他
set命令的argv第1项
万一 如果argv的长度大于1
设置配置文件的argv项目2
runWithProfile(命令,配置文件)
其他
runSimple(命令)
万一
运行结束在runSimple(命令)
告诉应用程序终端
启用
集newTab做脚本(命令)
告诉结束
返回newTab
结束runSimple在runWithProfile(命令,配置文件)
设置newTab为runSimple(命令)
告诉应用程序终端来设置newTab的当前设置(第一设置中设置其名称为配置文件)
结束runWithProfile
| osascript - $ @>的/ dev / null的
...它可以调用如下:
-
term.sh
- 打开一个新的终端窗口,没有什么特别
-
term.sh COMMAND
- 打开一个新的终端窗口,执行指定的命令。带参数的命令可以用引号括起来,例如
term.sh的emacs -nw
来打开新的终端并运行(无窗)的Emacs
- 打开一个新的终端窗口,执行指定的命令。带参数的命令可以用引号括起来,例如
-
term.sh COMMAND PROFILE
- 打开一个新的终端窗口,执行指定的命令,并将其设置为指定的配置文件。在其名称中的空间配置文件可以用引号括起来,例如
term.sh的emacs -nw,红沙
来打开新的终端并运行(无窗)与红金沙轮廓emacs的。
- 打开一个新的终端窗口,执行指定的命令,并将其设置为指定的配置文件。在其名称中的空间配置文件可以用引号括起来,例如
如果您使用了错误的命令名称调用它,它仍然会在打开的窗口,并设置配置文件,但你会在新窗口中得到的bash的错误消息。
如果你有一个坏的配置文件名称调用它,窗口将仍处于打开状态,命令仍将执行,但窗口将坚持使用默认的配置文件,你会得到一个错误信息(到stderr无论你启动它)沿的线
The invocation is slightly hacky, and could probably be improved if I took the time to learn getopt
(e.g., something like term.sh -p profile -e command
would be better and would, for instance, allow you to easily open a new terminal in the specified profile without invoking a command). And I also wouldn't be surprised if there are ways to screw it up with complex quoting. But it works for most purposes.
这篇关于编程与指定的命令来启动Terminal.app(和自定义颜色)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!