Shebang nie miał być tak elastyczny . Mogą istnieć przypadki, w których drugi parametr działa , myślę, że FreeBSD jest jednym z nich.
gawk i większość programów narzędziowych, które są dostarczane z systemem operacyjnym, powinny być dostępne /usr/bin/
.
W starszych czasach systemu UNIX powszechne było /usr/
montowanie w systemie plików NFS lub na niektórych tańszych nośnikach w celu zaoszczędzenia miejsca na dysku lokalnym i kosztów na stację roboczą. /bin/
miał mieć wszystko, co potrzebne do uruchomienia w trybie pojedynczego użytkownika . Ponieważ /usr/
nie został zamontowany na niezawodnym nośniku, /bin/
zawierał wystarczającą liczbę narzędzi, aby uczynić go wystarczająco przyjaznym do ogólnej administracji i rozwiązywania problemów.
Zostało to odziedziczone początkowo w Linuksie, ale ponieważ przestrzeń dyskowa nie stanowi już problemu, aw większości przypadków /usr/
znajduje się w głównym systemie plików, obecnym trendem jest przenoszenie wszystkiego /usr/bin
(przynajmniej w świecie Linuksa). Dlatego oczekuje się, że znajdzie się tam większość narzędzi zainstalowanych przez dystrybucję. Nawet najbardziej podstawowe narzędzia, takie jak cp
, rm
, ls
itp (no, jeszcze nie).
Jeśli chodzi o wybór shebang. Tradycyjnie jest to coś, co administratorzy lub użytkownicy muszą edytować w zależności od środowiska. Dla wszystkich programista wie, w systemach innych ludzi, interpreter może być gdziekolwiek w systemie plików (np /usr/local/bin
, /opt/gawk-4.0.1/bin
). Prawidłowo spakowane skrypty (rpm, deb itp.) Pochodzą albo z zależności od pakietu dystrybucyjnego (tzn. Interpreter ma znaną lokalizację), albo ze skryptu konfiguracyjnego, który konfiguruje właściwy hashbang podczas instalacji.
-f
? Nie/bin/gawk
wystarczy Także, to może być istotne.