如何在运行MacOS shel / Applescript脚本时避免使用僵尸窗口

时间:2016-10-02 00:21:36

标签: macos applescript

我经常使用 ssh 会话打开很多终端窗口。为了简化流程,我有一系列shell脚本,如下所示:

#!/bin/sh
osascript <<EOS
tell application "Terminal"
    activate
    do script "set_background_color salmon; ssh alan@demo.znyx.com"
end tell
EOS

这很有效。我可以从shell提示符执行脚本,也可以在Finder窗口中单击它。 (为此,文件名后缀为 .command ,而不是 .sh

问题在于,当我从Finder执行它时,我最终会在我打算打开的窗口后面出现一个死窗口(&#34; Process Completed&#34;)。有没有办法摆脱它或者首先没有打开它?

更新:

other question中的解决方案会导致出现提供确认/审核/取消选项的对话框。这是不可取的。

1 个答案:

答案 0 :(得分:1)

双击.command文件时,文件将传递给终端,终端会创建一个窗口并执行其中的命令。 .command文件中的命令使用AppleScript告诉Terminal在另一个窗口中运行命令。

为什么不删除中间人并在.command文件中放置要运行的终极命令 - set_background_color salmon; ssh alan@demo.znyx.com?通过运行AppleScript来删除这些内容。换句话说,.command文件的内容应该是:

set_background_color salmon
ssh alan@demo.znyx.com

或者,您可以从.command文件(<<EOSEOS之间的部分)中获取AppleScript,将其放入Script Editor.app,并将其另存为applet。