Шебанг не мав бути таким гнучким . Можливо, є деякі випадки, коли функціонування другого параметра працює , я думаю, що FreeBSD є одним із них.
Очікується, що в ньому з'явиться більшість утиліт, що постачаються з ОС /usr/bin/
.
У попередні дні UNIX зазвичай було /usr/
встановлено NFS або деякі менш дорогі носії для економії місцевого дискового простору та витрат на робочу станцію. /bin/
повинен був мати все необхідне для завантаження в режимі одного користувача . Оскільки /usr/
він не був встановлений на надійному носії, /bin/
увімкнув достатню кількість утиліт, щоб зробити його досить зручним для загального адміністрування та усунення несправностей.
Це було успадковано в Linux спочатку, але оскільки дисковий простір вже не є проблемою і в більшості випадків /usr/
знаходиться в кореневій файловій системі, теперішня тенденція полягає в переміщенні всього /usr/bin
(принаймні, у світі Linux). Тож очікується, що там знайдеться більшість комунальних послуг, встановлених дистрибутивом. Навіть самі основні утиліти, як cp
, rm
, і ls
т.д. (ну, ще немає).
Щодо вибору shebang Традиційно це адміністратори чи користувачі мають редагувати відповідно до свого оточення. Бо всі розробники знають, що в інших системах інтерпретатор може бути в будь-якій точці файлової системи (наприклад /usr/local/bin
, /opt/gawk-4.0.1/bin
). Правильно упаковані сценарії (rpm, deb тощо) поставляються або залежно від пакета distro (тобто, у інтерпретатора є відоме місце розташування), або зі скриптом config, який встановлює належний хешбанг під час встановлення.
-f
? Не/bin/gawk
вистачає? Також це може бути актуальним.