有没有办法使用 Applescript 在终端中启动多个选项卡并针对它们执行命令?
我有一个项目需要我在终端中启动多个服务以同时运行和监控,并且希望自动执行该启动过程。
答案1
一种选择是使用系统事件发送创建新选项卡所需的击键,但限制在于通用访问中的辅助设备必须被打开并且可能需要添加视线延迟。
tell application "System Events" to tell process "Terminal" to keystroke "t" using command down
据我从终端脚本词典中得知 - 你只能从选项卡中检索信息,但不能像在 Windows 中那样创建新的选项卡(例如运行 do script "clear"
答案2
看起来您可以使用 GUI 脚本。(我原本希望能够在不使用 GUI 脚本的情况下创建新选项卡,因为终端的字典将选项卡视为窗口的元素。不过显然有问题。)与 Chealion 的答案一样,必须打开辅助设备的访问权限,但 Apple 提供了一个脚本,可让您检查它是否在此处。
http://www.apple.com/applescript/uiscripting/
Matthew Lambie 在此提供了使用 AppleScript 的 GUI 脚本在 Terminal.app 中创建选项卡的示例:
http://lambie.org/2007/11/03/tabs-in-terminal-using-applescript-on-leopard/
该答案最好作为对 Chealion 答案的评论,但我还没有发表评论的代表。
答案3
终端有良好的脚本支持. AFP 548 有一个例子在不同的选项卡中打开多个 ssh 会话。[我认为这会比 GUI 脚本更容易实现并且更可靠。]
答案4
我不确定如何获取标签,但这会为您提供多个窗口:
set commands to {"ls", "pwd", "cd /tmp; ls"}
repeat with com in commands
tell application "Terminal"
activate
do script with command com
end tell
end repeat