/bin/env :错误的解释器

/bin/env :错误的解释器

我使用的是 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

相关内容