有没有办法使用bash命令在单独的窗口中打开多个文件?

时间:2018-02-28 02:52:47

标签: bash applescript

我想创建一个简单的bash脚本,它将在Mac上的4个独立桌面空间中打开4个不同的文本编辑器窗口。

我最接近的解决方案是通过在每个原子调用之间触发一个苹果脚本来转换桌面(atom是我正在使用的文本编辑器。)现在它看起来像这样

prepare() {
  osascript -e "tell application \"System Events\" to key code 18 using command down"
  atom spec
  osascript -e "tell application \"System Events\" to key code 19 using command down"
  atom db
  osascript -e "tell application \"System Events\" to key code 20 using command down"
  atom app
  osascript -e "tell application \"System Events\" to key code 21 using command down"
  atom app/assets
}

Apple脚本触发键盘单击(命令1,命令2等),我在设置中设置了该键盘以打开特定的桌面空间。

问题是原子在完成加载时打开的桌面是打开的,而不是在它开始时打开。因此,每个原子窗口在一个随机空间中打开,这取决于加载所需的时间以及刚刚执行的bash命令的哪一行。

如何获得我需要的功能?开放的解决方案与我设置的方式完全不同。我只需要在4个不同的桌面空间中打开4个独立的原子窗口。不关心它是如何完成的。

1 个答案:

答案 0 :(得分:0)

您可能会提供有关您的系统/环境的更多信息,因为并非所有命令或工具都是通用的。

我实际上不知道你的“桌面”究竟是什么意思。据我所知,您似乎希望您的4个编辑器在4个不同的“屏幕”上打开(您可以手动切换,在MAC OS上,而不是4个位置划分相同的屏幕),但是按照指定的顺序。

关于这一点,我不知道atom是如何执行的。检查其手册可能会帮助您指定“桌面”;如果没有,您可以尝试检查atom调用的进程或甚至是在“加载”之后和“在屏幕上打开一个窗口”之前是否有可识别信号的记忆。

e.g。您可能会发现atom首先创建一个说“正在加载”的进程,然后是另一个说“开放”的进程。在这种情况下,您可以等到“加载”过程结束:

atom app & wait

如果不是这种情况,您只需sleep足够长的时间就能完成编辑器的“加载”步骤。但无论如何这都不可靠。