【问题标题】:How to make a shell script run in Mac when double clicking it?双击时如何使shell脚本在Mac中运行?
【发布时间】:2011-05-01 21:50:30
【问题描述】:

我创建了一个 shell 脚本来在 Mac 中运行一个 jar 文件:

#!/bin/sh
java -Xmx512m -jar test.jar;

我已将此脚本重命名为“app.command”,以便在双击它时直接运行。我已经对其应用了“chmod +x”命令以获得可执行权限。

现在双击此脚本时,我得到“无法访问 jarfile test.jar”,而通过终端运行此脚本时,jar 运行良好!

任何人都可以帮助我如何在 Mac 中双击这个脚本来运行它?

【问题讨论】:

    标签: macos shell executable


    【解决方案1】:

    如果你从终端运行,你有一个工作目录集,如果你双击它可能不是这种情况。尝试在脚本中提供 jarfile 的完整路径。

    【讨论】:

    • @Curtis:你是对的。但是有没有办法克服这个问题? jar 可以在任何地方,但我确信 shell 脚本将在 jar 文件的同一文件夹中?
    • 好吧...我想现在的问题是:“我可以获取当前正在运行的 shell 脚本的绝对路径并使用它吗?”
    • 这可能会变得非常复杂,但如果脚本是通过双击运行的(并且不是符号链接),cd "$(dirname "$0")" 应该可以工作。
    • @Gordon ... 非常感谢.. 那么我将如何在我的脚本中使用它呢? :) ...我对shell脚本一无所知。请举例?
    • 将此命令添加为脚本的第二行(即在#!/bin/sh 之后——这样脚本的其余部分(主要是java 命令)将从脚本的目录中执行。