Macos 使用Bash/Terminal终止应用程序窗口

Macos 使用Bash/Terminal终止应用程序窗口,macos,bash,unix,terminal,Macos,Bash,Unix,Terminal,我正在尝试使用终端关闭预览中打开的窗口。我在互联网上找到的所有东西都建议改用AppleScript,但我不能这样做,因为我不存在plist选项(如图所示启用osascript进行预览)。我正在运行OSX10.8.2 这里我应该指出,我并不真正喜欢AppleScript,而是更喜欢bash解决方案 重申一下,我在预览中打开了一个.pdf文件,我想关闭访问和显示文件的特定窗口,而不是终止整个程序。我认为这是可能的,因为操作系统有一种方法可以在不使用bash的情况下关闭窗口 我还想知道当shell关闭

我正在尝试使用终端关闭预览中打开的窗口。我在互联网上找到的所有东西都建议改用AppleScript,但我不能这样做,因为我不存在plist选项(如图所示启用osascript进行预览)。我正在运行OSX10.8.2

这里我应该指出,我并不真正喜欢AppleScript,而是更喜欢bash解决方案

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

我还想知道当shell关闭应用程序的子进程(窗口)时,操作系统如何与shell交互

我可以找到open.pdf、进程、套接字、节点等c。使用lsof,但我不太愿意进一步使用这些信息,因为AFAIK,我可以使用这些信息终止整个进程(过度终止)或关闭端口/套接字(奇怪终止)

谢谢你帮我解决这个问题。我的谷歌能力让我失望,这真的让我很烦恼


编辑:在osascript的超级用户链接中添加,允许添加上下文。

您所采用的方法不起作用——应用程序中的窗口并没有分离到可以远程强制关闭而不影响整个应用程序的程度

我能想到的唯一解决办法就是使用AppleScript。我不知道你所说的“plist选项对我来说不存在”是什么意思


这比通常要复杂一些,因为Preview.app是沙盒的,因此无法通过普通方法编写脚本——我不得不使用UI脚本。(我单击的“第一个按钮”是窗口上的“关闭”按钮。)

您所采取的方法不起作用——应用程序中的窗口并没有分离到可以远程强制关闭而不影响整个应用程序的程度

我能想到的唯一解决办法就是使用AppleScript。我不知道你所说的“plist选项对我来说不存在”是什么意思


这比通常要复杂一些,因为Preview.app是沙盒的,因此无法通过普通方法编写脚本——我不得不使用UI脚本。(我单击的“第一个按钮”是窗口上的关闭按钮。)

manps
然后
mankill
无需查看internet。是的,但是,我将使用kill发出什么信号来关闭应用程序的子单元而不终止整个应用程序?手册上列出的唯一信号不是太嗜血就是太无效。到目前为止,我在谷歌上搜索的内容也没有任何帮助。
manps
然后
mankill
不需要在互联网上查看。是的,但是,我会用kill发出什么信号来关闭应用程序的一个子单元而不终止整个应用程序?手册上列出的唯一信号不是太嗜血就是太无效。到目前为止,我在谷歌上搜索的内容也没有任何帮助。对不起,我指的是plist启用。你的解决方案确实有效,而且你的解决方法也很聪明,但是真的没有办法在不“点击”第一个按钮的情况下关闭沙盒应用程序中的窗口吗?我不知道。据我所知,这个应用程序对于普通的AppleScript是不可见的。对不起,我指的是plist启用。你的解决方案确实有效,而且你的解决方法也很聪明,但是真的没有办法在不“点击”第一个按钮的情况下关闭沙盒应用程序中的窗口吗?我不知道。据我所知,这个应用程序对于普通的AppleScript是不可见的。
tell application "System Events"
    click first button of (first window of process "Preview" whose name is "example.png")
end tell