Beim Hinzufügen von #!something wird PATH nicht berücksichtigt.

Beim Hinzufügen von #!something wird PATH nicht berücksichtigt.

Unter Linux weist das Hinzufügen von #!/bin/bash die ausführbare Datei an, mit Bash ausgeführt zu werden.

Ich habe mich gefragt, warum dies im vollständigen Pfad angegeben ist. Ich würde erwarten, dass bin, da es sich in einem in PATH angegebenen Pfad befindet, durch einfaches Hinzufügen von #!bash gefunden wird.

Das ist nicht wirklich ein Ärgernis, ich bin nur neugierig. Danke

Antwort1

Das #!funktioniert so, dass der vollständige Pfadname des Interpreters folgen muss. Wenn Sie suchen möchten, $PATHist die häufigste Konstruktion #!/usr/bin/env<Interpreter>, zum Beispiel

#!/usr/bin/env perl

sucht perlin $PATH. Weitere Informationen dazu, warum dies funktioniert, finden Sie auf der Handbuchseite fürUmgebungund dasnette Diskussionunter "Woher weiß /usr/bin/env, welches Programm verwendet werden soll?" in diesem Forum.

verwandte Informationen