Bash

/bin/env : 錯誤的解釋器

  • March 25, 2020

我在 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

所以,我認為改變 to 中的 shebangsetup.sh可以#! /bin/bash解決問題(我沒有嘗試過),但是,這似乎不是很直覺,因為如果是這樣,那麼我問自己,

“這個應用程序(Quartus 13.1)的開發人員犯了錯誤嗎?”,這讓我認為我的系統有問題。

所以,問題是,為什麼會出現這種情況?

謝謝。

您的系統沒有任何問題,您只是使用了錯誤的env. 至少在 Linux 系統上,env二進製文件通常在/usr/bin而不是/bin

$ type env
env is /usr/bin/env

因此,您的腳本告訴您的系統使用/bin/env,它不存在,這就是您收到該錯誤的原因。只需更改為正確的 shebang 就可以了:

#!/usr/bin/env bash

引用自:https://unix.stackexchange.com/questions/574328