bash y dash. Necesito algunas aclaraciones
Camilo
camilo.uribe en gmail.com
Mar Jun 3 23:07:46 BST 2008
2008/6/3 Primitivo Pajares <crispulas en yahoo.es>:
> Al cambiar de Ubuntu 7.10 a Ubuntu 8.04 me he encontrado con la sorpresa de
> que la shell que tiene instalada por defecto ya no es bash, sino dash.
>
> En la dirección web http://www.ubuntu.com/getubuntu/releasenotes/804 en su
> sección "/bin/sh is now dash" y en el enlace de esta sección, he leído algo
> que no he entendido muy bien, pues mi nivel de inglés es bastante bajo. Lo
> que yo he podido entender es lo siguiente:
>
> --> A partir de Ubuntu 8.04, la shell por defecto es dash.
>
> En un principio pensé que esa era la shell que se iba a usar en las
> consolas virtuales, pero de una lectura más detenida he llegado a darme
> cuenta de que Ubuntu 8.04 usa dos shell: una para el sistema (system shell)
> y otra para las terminales (login shell). Parece ser que en la versión 6.06
> la system shell era sh, que en versiones anteriores era bash y que que en la
> versión 6.10 se sustituyó la shell sh por la dash. Sin embargo, lo que está
> claro es que la login shell sigue siendo bash: eso es lo que deduzco del
> texto de la dirección web aquí citada y también de que el comando "ps" en la
> consola virtual arroja el resultado:
> PID TTY TIME CMD
> 6411 pts/0 00:00:00 bash
> 6428 pts/0 00:00:00 ps
>
> --> También creo haber entendido que, dash sigue los estándares de POSIX
> y que bash no los sigue.
>
> Parece que hay unas cuantas extensiones (no sé si extensión significa lo
> mismo que comando) de bash a los que consideran bashismos y que parece ser
> que hay que evitar para cumplir con los estándares POSIX y por consiguiente
> crear scripts portables a otros sistemas operativos Unix.
>
>
> Pues bien, me gustaría saber lo siguiente:
>
> -- Cuáles son estos bashismos para poder evitarlos y así crear scripts
> portables.
En la pagina que citas dan un buen enlace con respuesta a casi todas
tus preguntas[1], aunque esta en ingles...
> -- Existe algún libro o tutorial que enseñe a programar en dash, para así
> poder crear scripst portables
El estándar posix[2]
> -- Si creo un script en bash y lo ejecuto desde el escritorio gnome, ¿que
> intérprete de comandos usaría, el de la system shell o el de la login shel?
El que pongas en la primera linea del script:
bash si pones #!/bin/bash
dash si pones #!/bin/sh o #!/bin/dash
> -- ¿Puede darme problemas a la hora de ejecutar algún script escrito en
> bash el echo de que la system shell sea dash?
No siempre y cuando tu script sea interpretado por bash
> ¡Gracias de antemano!
Realmente no vale la pena que te preocupes por esto excepto que seas
un desarrollador de Ubuntu.
Si tus scripts están hechos para bash y quieres que sigan funcionando
como siempre simplemente indicales en la primera linea que esa es la
shell que deben usar: #!/bin/bash
> PRIMITIVO PAJARES
>
>
> ________________________________
> Enviado desde Correo Yahoo!
> La bandeja de entrada más inteligente.
>
> --
> ubuntu-es mailing list
> ubuntu-es en lists.ubuntu.com
> https://lists.ubuntu.com/mailman/listinfo/ubuntu-es
>
[1] https://wiki.ubuntu.com/DashAsBinSh
[2] http://es.wikipedia.org/wiki/POSIX
--
Únete a la lista de correo sobre el desarrollo de software con
herramientas de software libre
http://slcolombia.org/Sl-prog
Más información sobre la lista de distribución ubuntu-es