¿Por qué alguien usaría sh en lugar de bash?

¿Por qué alguien usaría sh en lugar de bash?

Tengo que modificar los scripts de shell existentes y comienzan con

#!/bin/sh

¿Por qué alguien usaría eso en un sistema que también admite bash? Estoy tentado a cambiarlo, pero quiero asegurarme de que no haya ningún motivo que desconozca para ello.

Mi problema actual es con la manipulación de cadenas y su uso ${mystring:start:length}sería muy fácil en bash pero no útil en sh.

Respuesta1

Puede que no sea obvio hoy en día, cuando las distribuciones modernas de Linux son los sistemas operativos más comunes, pero hace algún tiempo se podía encontrar no sólo varios sistemas que no tenían bash en absoluto, sino que, según recuerdo, incluso una distribución de Linux, que en una de sus versiones tenía /bin/bash vinculado a algún shell que no sea similar a Bourne.

Mover scripts #!/bin/bash de un sistema a otro era molesto en aquel entonces, por lo que era más prudente escribir scripts en shell bourne puro sin bashismos.

Supongo que la portabilidad fue la razón principal. Todavía uso #!/bin/sh si estoy seguro de que no habrá ningún bashismo en el script, aunque han pasado al menos diez años desde que no hay nada más que Linux a mi alrededor.

información relacionada