使用Bash /终端杀死应用程序窗口

时间:2013-03-07 04:14:25

标签: macos bash unix terminal

我尝试使用终端在预览中关闭打开的窗口。我在互联网上找到的所有内容都建议使用AppleScript,但我不能这样做,因为plist选项对我来说不存在(如Super User所示,启用osascript进行预览)。我正在运行OS X 10.8.2。

我应该注意到,我并不真正关心AppleScript,而且更喜欢bash解决方案。

重申一下,我在预览中打开了.pdf,我想关闭访问和显示文件的特定窗口,而不是终止整个程序。我认为这是可能的,因为操作系统有一种方法可以在没有bash的情况下杀死窗口。

我还想知道OS在关闭应用程序的子进程(窗口)时如何与shell进行交互。

我可以找到打开的.pdf,进程,套接字,节点等。与lsof一起,但是由于AFAIK,我对进一步处理此类信息犹豫不决,我可以使用该信息终止整个进程(过度杀伤)或关闭端口/套接字(怪异杀死)。

感谢您帮我解决这个问题。我的谷歌能力让我失望,真让我感到困扰。

编辑:在超级用户链接中添加了osascript,可以添加上下文。

1 个答案:

答案 0 :(得分:1)

您采取的方法不会起作用 - 应用程序中的窗口与您可以远程强制关闭而不影响整个应用程序的程度并不是分开的。

我能想到的解决方案只涉及AppleScript。我不确定你的意思" plist选项对我来说不存在"。

tell application "System Events"
    click first button of (first window of process "Preview" whose name is "example.png")
end tell

这比平常更复杂,因为Preview.app是沙盒,因此无法通过常规方法编写脚本 - 我不得不使用UI脚本。 ("第一个按钮"我点击的是窗口上的关闭按钮。)