GNU/Linux >> Tutoriales Linux >  >> Linux

¿Alguna razón para tener un Shebang apuntando a /bin/sh en lugar de /bin/bash?

En la mayoría de los scripts de shell que he visto (además de los que no he escrito yo mismo), noté que el shebang está configurado en #!/bin/sh . Esto realmente no me sorprende en las secuencias de comandos más antiguas, pero también está presente en las secuencias de comandos bastante nuevas.

¿Hay alguna razón para preferir /bin/sh? sobre /bin/bash , desde bash es bastante omnipresente, y a menudo predeterminado, en muchas máquinas Linux y BSD desde hace más de una década?

Respuesta aceptada:

  1. Hay sistemas que no envían bash de forma predeterminada (por ejemplo, FreeBSD).
  2. Incluso si bash está instalado, es posible que no se encuentre en /bin .
  3. La mayoría de los scripts simples no requieren bash.
  4. Usar el shell POSIX es más portátil y los scripts se ejecutarán en una mayor variedad de sistemas.

Linux
  1. /usr/bin Vs /usr/local/bin ¿En Linux?

  2. ¿Se permite espacio entre #! ¿Y /bin/bash en Shebang?

  3. ¿Por qué /bin/sh apunta a /bin/dash y no a /bin/bash?

  4. ¿Cuál es la diferencia entre #!/usr/bin/env bash y #!/usr/bin/bash?

  5. cmake --version apunta a /usr/bin/cmake mientras que cmake apunta a /usr/local/bin

¿Cuándo debo usar /dev/shm/ y cuándo debo usar /tmp/?

¿Cuándo debo usar #!/bin/bash y cuándo #!/bin/sh?

Diferencia entre /bin y /usr/bin

Se movió el contenido de /bin a /usr/bin, ¿es posible deshacerlo?

¿Deberían vivir los sitios web en /var/ o /usr/ según el uso recomendado?

chroot falla:no se puede ejecutar el comando '/bin/bash':no ​​existe tal archivo o directorio