Estoy usando Big Sur para el trabajo. Quiero escribir un bash script que utilice algunas características modernas de bash.
El golpe que viene con el Big Sur es bastante antiguo:
$ /bin/bash --version
GNU bash, version 3.2.57(1)-release (x86_64-apple-darwin20)
Así que en instalé una versión posterior con brew:
$ /usr/local/bin/bash --version
GNU bash, version 5.1.8(1)-release (x86_64-apple-darwin20.3.0)
Esta versión tiene las características que quiero. Sin embargo, quiero que el script sea multiplataforma, por lo que codificar esta ruta al principio de script hace que no funcione en nuestro entorno de nube, y en ciertas máquinas de otros desarrolladores:
#!/usr/local/bin/bash
Investigando, he encontrado que una forma estándar de hacer un script multiplataforma es usar esto para obtener una ubicación bash:
#!/usr/bin/env bash
Que permite al usuario definir una ubicación para bash. Sin embargo, ¡no he podido conseguir que el comando funcione en mi entorno local!
Este comando no devuelve nada espero que devuelva la ruta completa a un bash. Ni siquiera devuelve la ruta al bash por defecto del sistema.
$ /usr/bin/env bash
He añadido /usr/local/bin/bash
a mi .profile
pero parece que no ha funcionado.
$ cat .profile
export PATH="/usr/local/sbin:/usr/local/bin/bash:$PATH"
¿Cómo configuro mi entorno, shell o lo que sea para que /usr/bin/env
da la ruta de acceso a /usr/local/bin/bash
?
Estoy usando Big Sur 11.6.4 con Terminal 2.11.