Oft sehe ich, dass Skripte mit einer Shebang-Zeile beginnen, die #!/usr/bin/env interpreter_name
für jeden Interpreter verwendet wird, mit der Begründung, dass verschiedene Systeme möglicherweise den Interpreter haben, den sie benötigen, um an verschiedenen Orten installiert zu werden. Wenn ich zum Beispiel davon ausgehe, dass python
es installiert /usr/bin/python
ist, kann ein Benutzer, der sich /opt/python
aus irgendeinem Grund für die Installation entschieden hat, es nicht so einfach verwenden.
Die offensichtliche Frage ist jedoch, ob es eine Garantie env
gibt, die an /usr/bin/env
einem bestimmten Ort (oder an einem bestimmten Ort) installiert wird, oder ob es sich sozusagen nur um einen Fall handelt, bei dem das Problem verschoben wird.
Diese leicht verwandte Frage enthält einen Kommentar, der besagt, dass es sich um eine schlechte Idee handelt. Es ist vorzuziehen, sie mit dem tatsächlichen Pfad des Interpreters zu installieren. Sie zitiert die einzelne Unix-Spezifikation, geht jedoch nicht wirklich auf diese Frage ein.
python
perl
man jetzt nicht mehr nach usw. suchen mussenv
, sondern nur noch das gleiche Problem, aber ein anderes Ziel. Es scheintenv
jedoch viel einfacher zu finden und offensichtlich viel vielseitiger zu sein, so dass es immer noch sehr günstig ist. Welches beantwortet meine Frage perfekt. Vielen Dank!