Shebang no estaba destinado a ser tan flexible . Puede haber algunos casos en los que funciona tener un segundo parámetro , creo que FreeBSD es uno de ellos.
Se espera que gawk y la mayoría de las utilidades que vienen con el sistema operativo estén incluidas /usr/bin/
.
En los viejos tiempos de UNIX, era común haberse /usr/
montado sobre NFS o algunos medios menos costosos para ahorrar espacio en disco local y costo por estación de trabajo. /bin/
se suponía que tenía todo lo necesario para arrancar en modo de usuario único . Como /usr/
no se montó en un medio confiable, /bin/
incluyó suficientes utilidades para que sea lo suficientemente amigable para la administración general y la solución de problemas.
Inicialmente, esto se heredó en Linux, pero como el espacio en disco ya no es un problema y, en la mayoría de los casos, /usr/
está en el sistema de archivos raíz, la tendencia actual es mover todo /usr/bin
(al menos en el mundo de Linux). Por lo tanto, se espera que la mayoría de las utilidades instaladas por una distribución se encuentren allí. Incluso la mayoría de las empresas de servicios públicos básicos, como cp
, rm
, ls
etc (bueno, no todavía).
En cuanto a la elección shebang. Tradicionalmente, esto es algo que los administradores o usuarios tienen que editar de acuerdo con su entorno. Por lo que un desarrollador sabe, en los sistemas de otras personas, el intérprete podría estar en cualquier parte del sistema de archivos (por ejemplo /usr/local/bin
, /opt/gawk-4.0.1/bin
). Los scripts correctamente empaquetados (rpm, deb, etc.) vienen con una dependencia de un paquete de distribución (es decir, el intérprete tiene una ubicación conocida) o un script de configuración que configura el hashbang adecuado durante la instalación.
-f
? ¿No es/bin/gawk
suficiente? Además, esto podría ser relevante.