Ich bin auf einige Probleme gestoßen, als ich einige Installationsskripte ausgeführt habe, über die sie sich beschwert haben bad interpreter.
Also habe ich ein triviales Beispiel gemacht, aber ich kann nicht herausfinden, wo das Problem liegt, siehe unten.
#!/usr/bin/env bash
echo "hello"
Das Ausführen des obigen Skripts führt zu folgendem Fehler
[root@ech-10-24-130-154 dc-user]# ./junk.sh
bash: ./junk.sh: /usr/bin/env: bad interpreter: No such file or directory
Die /usr/bin/envDatei existiert, siehe unten:
[root@ech-10-24-130-154 dc-user]# ls -l /usr/bin/env
lrwxrwxrwx 1 root root 13 Jan 27 04:14 /usr/bin/env -> ../../bin/env
[root@ech-10-24-130-154 dc-user]# ls -l /bin/env
-rwxr-xr-x 1 root root 23832 Jul 16 2014 /bin/env
[root@ech-10-24-130-154 dc-user]#
Wenn ich das Skript so ändere, dass es den regulären Shebang verwendet #!/bin/bash, funktioniert es kein Problem. #!/bin/env bashfunktioniert auch.
Was fehlt in der Umgebung, damit der tragbare Shebang funktioniert?
ls -lL /usr/bin/envkehrt zurück, ls: cannot access /usr/bin/env: No such file or directoryalso muss ich wohl den symbolischen Link ändern? Kann ich darauf hinweisen /bin/env?
env --version ist 8.4 und das Betriebssystem ist Red Hat Enterprise Linux Server Version 6.6.