首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >shebang groovy出现错误

shebang groovy出现错误
EN

Stack Overflow用户
提问于 2012-07-24 09:37:37
回答 1查看 1.1K关注 0票数 0

我的.sh文件中有以下几行

代码语言:javascript
复制
#! /usr/bin/env /Users/myuser/Development/tools/groovy

println "this is a test"

env: /Users/myuser/tools/groovy:权限被拒绝

当我运行命令/usr/bin/env groovy时,我没有得到任何错误。有什么线索会发生在OS上吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-07-24 11:11:59

#!/usr/bin/env技巧的目的是避免指定interpeter的完整路径。有关详细信息,请参阅this question (和my answer)。由于您无论如何都要指定完整的绝对路径,因此您最好使用:

代码语言:javascript
复制
#!/Users/myuser/Development/tools/groovy

至于为什么这不起作用,最有可能的是,您的$PATH中的其他地方有一个groovy命令,而/usr/bin/env groovy正在调用另一个副本。

这一点:

代码语言:javascript
复制
type -a groovy

我会告诉你你的$PATH中有哪个groovy可执行文件。还有这个:

代码语言:javascript
复制
ls -l /Users/myuser/Development/tools/groovy

应该会告诉你为什么会出现“权限被拒绝”的错误;很可能该文件是不可执行的。

另一种可能是:一些系统限制了#!线路的长度。我不知道OSX是否会这样做。如果是这样,groovy命令的路径可能会被截断。如果这就是问题所在,您可以考虑将groovy命令移动或复制到绝对路径较短的目录中。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11622938

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档