我使用的是 Linux Mint 19.03。
我有一个安装 shell 脚本文件,setup.sh
.当我跑步时./setup.sh
muyustan@mint:~/Downloads/quartusExtracted$ ./setup.sh
bash: ./setup.sh: /bin/env: bad interpreter: No such file or directory
中的shebang setup.sh
:
#!/bin/env bash
我对这些事情的理解非常狭窄,因为我对 Linux 世界还很陌生。
我知道,使用/bin/env bash
而不是给出确切的bash
路径就像“在环境变量中搜索并尝试查找bash
”。当我查看/bin
目录时env
,我发现没有这样的文件:
muyustan@mint:/usr/bin$ ll /bin | grep "env"
lrwxrwxrwx 1 root root 6 Mar 21 14:35 open -> openvt*
-rwxr-xr-x 1 root root 18872 Jan 22 2018 openvt*
还,
muyustan@mint:~/Downloads/quartusExtracted$ which bash
/bin/bash
setup.sh
所以,我认为改变to中的 shebang#! /bin/bash
可以解决问题(我没有尝试过),但是,这看起来不太直观,因为如果是这样,那么我问自己,
“这个应用程序(Quartus 13.1)的开发人员犯了一个错误吗?”,这让我认为我的系统出了问题。
那么,问题来了,为什么会出现这样的情况呢?
谢谢。
答案1
您的系统没有任何问题,您只是使用了错误的路径env
。至少在 Linux 系统上,env
二进制文件通常位于/usr/bin
而不是/bin
:
$ type env
env is /usr/bin/env
因此,您的脚本告诉您的系统使用/bin/env
不存在的 ,这就是您收到该错误的原因。只需更改为正确的 shebang 就可以了:
#!/usr/bin/env bash