0 votos

Actualizar bash en shell scripts en MacOS

Hola estoy intentando actualizar bash en mi shell scripts a la v5 en macOS. Ejemplo shell scripts:

#!/usr/bin/env bash
which bash
echo $BASH_VERSION

La actualización de bash en mi terminal tiene éxito, sin embargo, en cualquiera de mis shell scripts existentes, sigue cayendo de nuevo a v3.2.57(1)-release (/bin/bash) mientras que yo quiero usar v5.x (que está en /usr/local/bin/bash). Cada vez que cambio la variable PATH para que /bin/ no esté incluido (sólo /bin/env) obtengo un error diferente:

env: bash: No such file or directory

Siempre que lo incluyo, se utiliza la v3.2 en el script..

Cosas que hice:

  • Eliminado /bin/bash de /etc/shells
  • Intentado cambiar la variable PATH para que #!/usr/bin/env bash siga funcionando pero no se use v3.2
  • Añade /usr/local/bin a la ruta, lo que da como resultado ./my-script: line 215: sh: command not found

¿Alguien tiene más consejos que pueda probar?

Configuración de My Path:

#start path from fresh
export PATH=/usr/local/bin
export PATH=$PATH:/bin
export PATH=$PATH:/usr/bin/
echo $PATH #output = /usr/local/bin:/bin:/usr/bin/

1voto

Vincent Puntos 86

Después de corregir mi configuración de ruta como se sugirió en los comentarios. Descubrí que la versión de bash en el script estaba configurada correctamente en el script original pero no en el script que le seguía. Así que el problema era que script A estaba llamando a script B haciendo

sh next-script-to-run.sh params #runs in v3

Después de cambiar esto para ejecutar el script sin el comando sh. Todos los script se ejecutan en bash v5:

./next-script-to-run.sh params #runs in v5

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X