Bashismos

Esto surgió mientras un amigo depuraba un script de backup. Supongamos que creamos un script denominado ./myscript con el contenido siguiente:

echo parametro1 es $1
echo parametro2 es $2

Y luego lo ejecutamos alternativamente con los intérpretes Dash y Bash:

mauro@yoda$ dash
$ . ./myscript
parametro1 es
parametro2 es
$ . ./myscript foo bar
parametro1 es
parametro2 es
mauro@yoda$ bash
$ . ./myscript
parametro1 es
parametro2 es
$ . ./myscript foo bar
parametro1 es foo
parametro2 es bar

¿Se nota la diferencia?

Efectivamente, al utilizar el comando “.” (dot o source) Dash no pasa ningún argumento al script, mientras Bash sí lo hace. ¿Bug o Feature? Según parece, es una implementación estricta del estándar POSIX. En cualquier caso, hasta que nos dimos cuenta, fue un dolor de cabeza.

Copyright © All Rights Reserved · Green Hope Theme by Sivan & schiy · Proudly powered by WordPress