
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 bash
von anstelle der Angabe des genauen bash
Pfads so etwas wie „Suchen Sie in den Umgebungsvariablen und versuchen Sie, zu finden “ bedeutet. Wenn ich im Verzeichnis bash
nachschaue , sehe ich, dass es keine solche Datei gibt:/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*
Auch,
muyustan@mint:~/Downloads/quartusExtracted$ which bash
/bin/bash
Ich gehe also davon aus, dass das Ändern des Shebangs im setup.sh
to #! /bin/bash
das 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 env
befindet sich die Binärdatei normalerweise in /usr/bin
und 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