/bin/sh
es solo un shell Bourne. Tanto dash como bash pueden actuar como shells compatibles con sh, y dado que el shell Bourne original ya no se usa, sh es a menudo un enlace simbólico a bash o dash (principalmente en Ubuntu), o incluso zsh.
Sin embargo, cuando use sh, no debe usar ninguna especificidad de un shell en particular. Es por eso que un script con un #!/bin/sh
shebang no debería depender de ningún bashismo, por ejemplo. Cuando se hace referencia alguna particularidad de fiesta, se debe utilizar #!/usr/bin/env bash
. Eso es para un shell utilizado para ejecutar scripts.
Otro aspecto del shell es el símbolo del sistema utilizado por un usuario. La mayoría de las veces se define en /etc/passwd
, y la elección es a discreción de la distribución que está utilizando. Si el valor predeterminado es usar guión, obviamente puede cambiar la línea /etc/passwd
para un usuario específico y poner /usr/bin/bash
.
Finalmente, incluso si no es una buena idea, si realmente desea sh
que se ejecute el comando bash
, si está en un shell, debería poder alias
hacerlo, o crear un enlace simbólico en otro directorio ( ~/bin
por ejemplo) y luego agregarlo a la RUTA ( export PATH="~/bin:${PATH}"
)
/bin/sh
generalmente no es el shell Bourne en sí mismo, sino un enlace a otro shell que se adhiere a la especificación POSIX, que se basa pero no es idéntico al shell Bourne original.