【问题标题】:running groovy script from any user directory on linux从 linux 上的任何用户目录运行 groovy 脚本
【发布时间】:2012-11-27 23:00:48
【问题描述】:

我已经在 groovy 中编写了一个实用程序脚本,并希望根据需要在任何目录中运行它,而不必指定它的完整路径。如$> groovy myScript.groovy

我已将其父目录的路径添加到 .profile 中的 PATH 中,获取了它,但保留 gettig 'command not found' 错误。从概念上讲,知道在哪里寻找问题吗?

东西在哪里:

我的 PostBuilder.groovy 脚本的第一行:#!/usr/bin/env groovy`

.profile 中的路径:export PATH=$PATH:/home/me/work/web/MyProject/public_html

我现在尝试在我的主目录中执行脚本时遇到的错误:

Caught: java.io.FileNotFoundException: /home/me/PostBuilder.groovy (/home/me/PostBuilder.groovy)

仅供参考,我的 Groovy/Grails 设置工作正常,所以我认为 groovy 本身的安装是可以的。

【问题讨论】:

    标签: linux groovy


    【解决方案1】:

    你真正想要的更有可能是:

    1. 将脚本所在的路径添加到您的 PATH 环境变量中,然后
    2. 通过chmod u+x使其可执行,并且
    3. 使用#!/usr/bin/env groovy(或您的同等人员)将其发送出去。

    【讨论】:

    • ...刚试过玩这个,还是不开心,补充了更多细节问题。
    • @vector 我不懂你的shebang。
    • 我的 groovy 安装在 /home/me/groovy 而不是 /usr/bin/env
    • @vector 那还是错了,IMO。搜索“unix shebang”以查看它的实际作用。
    • @vector 事实证明,您不能直接提供groovy 作为shebang 的目标。必须是二进制文件,groovy 是一个 shell 脚本(参见stackoverflow.com/questions/5479731/shebang-and-groovy 中的 cmets)。因此,让env 执行 groovy 是解决此问题的方法。
    【解决方案2】:

    groovy/bin 的路径添加到您的PATH。然后你可以运行 groovy,但你仍然需要在你的 .groovy 脚本的目录中,或者提供完整的路径,才能执行。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-06-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-08-12
      • 2013-06-25
      • 2011-11-01
      相关资源
      最近更新 更多