![-bash:: /bin/bash:错误的解释器:不允许操作](https://linux22.com/image/196229/-bash%3A%3A%20%2Fbin%2Fbash%EF%BC%9A%E9%94%99%E8%AF%AF%E7%9A%84%E8%A7%A3%E9%87%8A%E5%99%A8%EF%BC%9A%E4%B8%8D%E5%85%81%E8%AE%B8%E6%93%8D%E4%BD%9C.png)
我最近用acceptopenjdk-16替换了acceptopenjdk-13。我有一个按名称使用该工具的脚本文件,因此我将其从 13 更改为 16。其新内容:
#!/bin/bash
if [ -z ${JAVA_OPTS+x} ]
then
# Set some defaults
JAVA_OPTS=""
fi
/Library/Java/JavaVirtualMachines/adoptopenjdk-16.jdk/Contents/Home/bin/java $JAVA_OPTS -jar $CROMWELL_HOME/womtool.jar "$@"
me $ which bash
/bin/bash
me $ ll /usr/local/cromwell
total 16
drwxr-xr-x 6 root wheel 192B Sep 27 12:43 ./
drwxr-xr-x 23 root wheel 736B Nov 10 2020 ../
-rwxr-xr-x@ 1 root wheel 210B Sep 27 12:42 cromwell*
lrwxr-xr-x 1 root wheel 39B Jul 14 15:14 cromwell.jar
-rwxr-xr-x@ 1 root wheel 208B Sep 27 12:41 womtool*
lrwxr-xr-x 1 root wheel 38B Jul 14 15:14 womtool.jar
m082166@me $ $CROMWELL_HOME/womtool validate MyWDL.wdl
-bash: /usr/local/cromwell/womtool: /bin/bash: bad interpreter: Operation not permitted
me $ /Library/Java/JavaVirtualMachines/adoptopenjdk-16.jdk/Contents/Home/bin/java $JAVA_OPTS -jar $CROMWELL_HOME/womtool.jar validate MyWDL.wdl
Success!
为什么 bash 拒绝让我运行脚本,而运行脚本的内容完全没问题?在我更新脚本文件以指向正确的工具后,这实际上就中断了
答案1
感谢 elfshift 这是回答。显然 MacOS 决定将这些文件放入“隔离区”,因此不允许我运行这些文件
sudo xattr -d com.apple.quarantine /usr/local/cromwell/*
解决了问题
答案2
查看文件的扩展属性(我的文件名是script.sh
):
xattr -l script.sh
如果您com.apple.quarantine
在属性列表中看到,请使用以下命令将其删除:
xattr -d com.apple.quarantine my-file.sh
如果您有多个文件,请随时更新最后一个合适的参数。