/bin/env: fehlerhafter Interpreter

/bin/env: fehlerhafter Interpreter

Ich verwende Linux Mint 19.03.

Ich habe eine Setup-Shell-Skriptdatei setup.sh. Wenn ich sie ausführe./setup.sh

muyustan@mint:~/Downloads/quartusExtracted$ ./setup.sh 
bash: ./setup.sh: /bin/env: bad interpreter: No such file or directory

Der Kram in setup.sh:

#!/bin/env bash

Da ich in der Linux-Welt noch ziemlich neu bin, sind meine Kenntnisse in diesen Dingen sehr begrenzt.

Ich wusste, dass die Verwendung /bin/env bashvon anstelle der Angabe des genauen bashPfads so etwas wie „Suchen Sie in den Umgebungsvariablen und versuchen Sie, zu finden “ bedeutet. Wenn ich im Verzeichnis bashnachschaue , sehe ich, dass es keine solche Datei gibt:/binenv

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*

Auch,

muyustan@mint:~/Downloads/quartusExtracted$ which bash
/bin/bash

Ich gehe also davon aus, dass das Ändern des Shebangs im setup.shto #! /bin/bashdas Problem lösen wird (ich habe es nicht versucht), dies scheint jedoch nicht sehr intuitiv zu sein, denn wenn das so ist, frage ich mich,

„Haben die Entwickler dieser Anwendung (Quartus 13.1) einen Fehler gemacht?“, was mich zu der Annahme führt, dass mit meinem System etwas nicht stimmt.

Die Frage ist also: Warum ist das so?

Danke.

Antwort1

Mit Ihrem System ist alles in Ordnung, Sie verwenden lediglich den falschen Pfad zu env. Zumindest auf Linux-Systemen envbefindet sich die Binärdatei normalerweise in /usr/binund nicht in /bin:

$ type env
env is /usr/bin/env

Ihr Skript fordert Ihr System also auf, zu verwenden /bin/env, was aber nicht existiert. Deshalb erhalten Sie diesen Fehler. Ändern Sie es einfach in das richtige Shebang, dann sollte alles in Ordnung sein:

#!/usr/bin/env bash

verwandte Informationen