如何测试OSX上的bash中是否存在.app(应用程序目录)?

时间:2015-07-30 13:05:35

标签: macos bash

我想通过bash脚本测试文件或目录是否存在:

    if [ -f "$file" -o -d "$file" ]; then
        # Do things
    fi

但是这个测试不能在应用程序文件(.app)上工作,我在测试手册页上找不到答案,并且认为.app被认为是osx上的文件夹。

2 个答案:

答案 0 :(得分:2)

检查目录是否存在:

if [ -d "$<app name>.app" ]; then
  # Control will enter here if $<app name>.app exists.
fi

检查目录是否存在:

if [ ! -d "$<app name>.app" ]; then
  # Control will enter here if $<app name>.app doesn't exist.
fi

答案 1 :(得分:1)

存在Os X应用程序的简单Bash命令行测试

if open -Ra "$<app name>" ; then
  # Control will enter here if $<app name>.app exists.
else
  # Control will enter here if $<app name>.app doesn't exist.
fi

示例:是否已安装应用程序TeXShop

if open -Ra "TeXShop" ; then
  echo "VERIFIED: 'TeXShop' is installed"
else
  echo "ERROR: 'TeXShop' is not installed"
fi

<强>说明

测试很快 - 我的MacBook Pro上大约20毫秒 - 而且(显然)没有Finder副作用。该测试(显然)适用于任何响应适当的Os X应用程序:

open -a "${<app name>}" "${<file name}"