运行 bash 脚本时出错-没有匹配的进程

运行 bash 脚本时出错-没有匹配的进程

我试图通过运行 来终止 Xcode killall Xcode.app,当我通过终端运行时,它正常工作。但是,如果我将它放入我保存在桌面上的名为 的 bash 脚本中re_xcode,该脚本将输出以下错误。请问您能告诉我我哪里出错了吗?

未找到属于您的匹配进程

文件 /Users/Max/Desktop/Applications/Xcode.app 不存在。

#!/bin/bash
killall Xcode.app
open ./Applications/Xcode.app

答案1

两个错误:

  1. killall以进程名称作为参数。Xcode.app然而,它是一个应用程序包。它包含的内容远不止进程,还包括属于应用程序的所有类型的文件(图形、翻译数据等)。

    因此,终止 Xcode 的实际方法是:

    killall Xcode
    

    或者,以一种理智的方式,使用 AppleScript:

    osascript -e 'tell app "Xcode" to quit'        
    
  2. 您的另一个错误是引用了.当前脚本所在的目录,该目录可以是任何目录。就您而言,它是桌面。因此,您的kill命令可以正常工作,但open会失败,因为您的桌面上没有 Xcode(或“应用程序”文件夹)。

    Xcode 不再安装到/Developer。Mac App Store 版本是 下的一个独立应用程序/Applications/Xcode.app。因此,您可以执行以下操作:

    open /Applications/Xcode.app
    

    然而,最便携的解决方案就是使用:

    open -a Xcode
    

    无论 Xcode 安装在何处,这都会打开它,因为它依赖于 LaunchServices 数据库来找出正确的路径。


更进一步,与其将其作为 bash 脚本执行,为什么不在 中创建一个别名.bash_profile?这将使从命令行在任何地方执行都更加简单。

alias rex='killall Xcode && open -a Xcode'

答案2

看起来您正在从桌面运行该脚本,但找不到 xcode.app 的路径。请检查正确的位置,对我来说是/Developer/Applications/Xcode.app

相关内容