Dudas con sh, dash y bash [Solucionado]

Hace un tiempo me puse a aprender la creación de scripts y de entrada me encontré que la ejecución de un script de ejemplo me daba valores diferentes a lo indicado en el tutorial si lo ejecutaba mediante sh script, en cambio si lo ejecutaba mediante bash script, si me daba igual salida que el tutorial, investigando un poco, me entero que sh es en realidad un enlace simbólico que apunta a /bin/dash, en vez de hacerlo a /bin/bash, las dudas son:
1.- Que problemas puedo tener si cambio el enlace de /bin/sh a /bin/bash , esto para poder ejecutar Scripts con bash mediante sh, ya que tengo entendido que dash solo se adopta por defecto en Debian y sus crías , por lo que los Scripts creados en otras distros no corrían adecuadamente ya que estas usan bash por defecto.
2.- Si ejecuto los Scripts mediante bash , ¿lo harán correctamente si estos fueran creados con dash?.
Todo esto lo pregunto mas que nada por que simpre tengo la duda a la hora de ejecitar un Script creado por terceros en donde los instructivos indican hacerlo mediante sh .

Dash es mas ligero y rapido que bash, pero no tiene algunas funcionalidades, por defecto sh apunta a dash (Debian Alquimist Shell) en debian mioentras que en otras distribuciones lo hace bash, por eso es posible que algunos scripts no funcionen en dash y si en bash.
Por favor intenta ser un poco mas descriptivo con el titulo, algo asi como diferencias entre distintas consolas por poner un ejemplo

Claro, pero la gran duda que tengo es si ejecuto un Script mediante bash lo hará correctamente si este fué creado en dash, siempre tengo esta duda a la hora de ejecutar algún Script.

Si pretendes programar shell scripts una de las primeras cosas que debes decidir es si te quedaras en sh o programarás para bash.

Siempre es recomendable no utilizar características propias de bash (conocida comúnmente como bashismos) ya que limitás la portabilidad del código.

¿Cambiar el enlace simbolico? mejor no, es mas recomendable modificar la shebang line del script.

Cacumen escribió:

Claro, pero la gran duda que tengo es si ejecuto un Script mediante bash lo hará correctamente si este fué creado en dash, siempre tengo esta duda a la hora de ejecutar algún Script.

Si, dash es mas limitado que bash, asi que lo que te funcione en dash (sh en Debian) te funcionara en bash pero al reves no siempre, es bueno hacer lo que te indica Pato, cambiar la primera linea del script antes que cambiar el enlace simbolico

No pretendo programar, simplemente quiero poder ejecutar con seguridad , no conozco otras distros que no deriven de Debian, allí posiblemente sh apunte a bash y si lo ejecuto en Debian mediante sh me va a dar error a pesar de que el encabezamiento del Script indique que fue creado con sh que en realidad en este caso hipotético , el Script fue creado en bash .
Si no entiendo mal, creo que mayor portabilidad se logra usando bash ya que sh es en realidad un enlace simbólico que apunta a dash (Debian), o bash (otras distros).
Además no siempre resulta facil abrir el Script para ver su encabezamiento debido al peso que puede llegar a ser de varios megas.

cnicolas escribió:

Si, dash es mas limitado que bash, asi que lo que te funcione en dash (sh en Debian) te funcionara en bash pero al reves no siempre

Gracias, esto es lo que quería saber

Cacumen escribió:
cnicolas escribió:

Si, dash es mas limitado que bash, asi que lo que te funcione en dash (sh en Debian) te funcionara en bash pero al reves no siempre

Gracias, esto es lo que quería saber

Ay, ay, ay. Te has quedado con una noción simplificada. La idea principal (razón de mucha discusión y trabajo) es que bash no cumple con los estándares; es el IE de las shells. Usar y mantener esas características es nocivo para el complejo ecosistema UNIX. En tu lugar publicaría el script para que te ayudemos a desbashizarlo y seguiría usando dash como debian manda.