Bash
/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
所以,我認為改變 to 中的 shebang
setup.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