【发布时间】:2019-11-07 06:51:22
【问题描述】:
我正在尝试使用基本上调用 .command 文件来完成所有工作的自动机创建一个 mac“应用程序”。命令文件将与 .app 位于同一目录中,但我首先遇到的是 - 获取已单击的 .app 文件的当前目录以确定 .command 文件的文件位置。
我试过了
SCRIPTPATH="$( cd "$(dirname "$0")" ; pwd -P )"
echo "-- $SCRIPTPATH"
这只是返回我的用户主管 - 基本上〜 应用程序本身位于桌面示例的目录中:~/Desktop/foo/my.app
我也试过
here="`dirname \"$0\"`"
echo "cd-ing to $here"
cd "$here" || exit 1
都不工作。
最后我需要调用my.command 来运行命令,但需要知道它的实际位置——甚至是相对于应用程序的位置,以便它会触发。目前我得到的错误是它找不到 my.command,因为它不在我的用户帐户的根目录中(因为我无法控制它可以放置在最终用户机器上的位置)。
任何关于我可以做些什么来解决这个问题的指针都非常感谢。
注意:要回答 - 为什么我使用具有终端脚本的应用程序来调用本质上是脚本的 .command - 基本上是因为如果你这样做,终端实际上不会弹出......这个演示是我需要做的。
【问题讨论】:
-
为什么不直接使用 Run Shell Script action 并将
.command文件中的 code 放在那里? -
您可以使用 Run AppleScript 操作来获取 NSBundle 的 bundlePath,但如上所述,您也可以使用 Run Shell Script 操作。跨度>
-
@user3439894 @red_menace 谢谢 - 我注意到我为什么要这样做,但为了参数的缘故,只是按要求执行 - 当我将以下代码放在自动机的 shell 脚本中时.. `` ` here="
dirname \"$0\"" /Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --app=file://"$here"/mywebpage.htm ``` 存在同样的挑战.. @ 987654326@ 评估为.意味着 chrome 失败并出现错误..“不知道如何打开 file://./mywebpage.htm
标签: bash applescript automator