Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mac终端/bash仅打开应用程序的一个实例_Bash_Macos_Terminal - Fatal编程技术网

Mac终端/bash仅打开应用程序的一个实例

Mac终端/bash仅打开应用程序的一个实例,bash,macos,terminal,Bash,Macos,Terminal,我设置了一些bash函数来打开应用程序。代码运行subl.在Sublime文本编辑器中打开当前目录。如果Sublime已经打开,它将打开应用程序的另一个实例。是否可以只打开应用程序的该实例,然后关闭所有其他实例?这样就不会有多个实例可供处理。使用以下命令: 这与单击应用程序时使用的LaunchServices机制相同,因此它只会打开应用程序的一个实例。使用以下命令: 这与单击应用程序时使用的LaunchServices机制与Finder相同,因此它只会打开应用程序的一个实例。使用open命令模拟

我设置了一些bash函数来打开应用程序。代码运行
subl.
在Sublime文本编辑器中打开当前目录。如果Sublime已经打开,它将打开应用程序的另一个实例。是否可以只打开应用程序的该实例,然后关闭所有其他实例?这样就不会有多个实例可供处理。

使用以下命令:

这与单击应用程序时使用的
LaunchServices
机制相同,因此它只会打开应用程序的一个实例。

使用以下命令:



这与单击应用程序时使用的
LaunchServices
机制与
Finder
相同,因此它只会打开应用程序的一个实例。

使用
open
命令模拟单击应用程序时
Finder
的工作方式。一般来说,这个问题的答案是特定于应用程序的,而不是完全通用的(例如,对于Emacs,可以使用
EmacClient
连接到现有实例),这使得它有点过于宽泛;bash中没有为此目的内置任何工具(不过,正如Barmar所指出的,OS X中内置了工具)。如果只是为了升华而询问如何这样做,则更容易得到一个可测试的正确、全面的答案。@CharlesDuffy我刚刚打开了一个Emacs文件名,它在我现有的Emacs窗口中打开了该文件。对于任何允许您将文件拖到其图标上的应用程序,它的工作原理应该是相同的。@Barmar,当然可以,但“允许您将文件拖到其图标上的任何应用程序”并不是每个应用程序。在OS X上有许多UNIX world作为轻量级端口提供,但与本机API的配合不太好。@CharlesDuffy OK,任何遵循苹果设计准则的应用程序。这是最重要的。使用
open
命令模拟单击应用程序时
Finder
的工作方式。一般来说,此问题的答案将是特定于应用程序的,而不是完全通用的(例如,对于Emacs,可以使用
EmacClient
连接到现有实例),让它有点太宽;bash中没有为此目的内置任何工具(不过,正如Barmar所指出的,OS X中内置了工具)。如果只是为了升华而询问如何这样做,则更容易得到一个可测试的正确、全面的答案。@CharlesDuffy我刚刚打开了一个Emacs文件名,它在我现有的Emacs窗口中打开了该文件。对于任何允许您将文件拖到其图标上的应用程序,它的工作原理应该是相同的。@Barmar,当然可以,但“允许您将文件拖到其图标上的任何应用程序”并不是每个应用程序。在OS X上有许多UNIX world作为轻量级端口提供,但与本机API的配合不太好。@CharlesDuffy OK,任何遵循苹果设计准则的应用程序。哪一个是最重要的。谢谢@barmar。这仍然在为我打开一个新窗口中的应用程序。它应该是一个新窗口,但应用程序进程相同。您应该只能在Dock中看到一个实例。@TravisHoki如果将文件或文件夹拖到Dock中的升华文本图标上会发生什么情况?@TravisHoki如果您需要对应用程序进行更精细的控制,例如告诉它关闭其他窗口,则需要使用AppleScript。您可以使用
osascript
@Barmar在shell中执行此操作。当我将文件夹拖到文档中的升华文本图标上时,它会在升华中打开一个新的空白窗口。如果我拖动一个文件,它将打开该文件。如上所述,上面的
open
命令正在新窗口中打开目录,并且只打开一个实例。我只想一次只打开一扇窗户。我将研究
osascript
。谢谢你的帮助。谢谢@barmar。这仍然在为我打开一个新窗口中的应用程序。它应该是一个新窗口,但应用程序进程相同。您应该只能在Dock中看到一个实例。@TravisHoki如果将文件或文件夹拖到Dock中的升华文本图标上会发生什么情况?@TravisHoki如果您需要对应用程序进行更精细的控制,例如告诉它关闭其他窗口,则需要使用AppleScript。您可以使用
osascript
@Barmar在shell中执行此操作。当我将文件夹拖到文档中的升华文本图标上时,它会在升华中打开一个新的空白窗口。如果我拖动一个文件,它将打开该文件。如上所述,上面的
open
命令正在新窗口中打开目录,并且只打开一个实例。我只想一次只打开一扇窗户。我将研究
osascript
。谢谢你的帮助。
open -a 'Sublime Text' .