Puedo definir bash funciones usando u omitiendo la function palabra clave. ¿Hay alguna diferencia?
#!/bin/bash
function foo() {
echo "foo"
}
bar() {
echo "bar"
}
foo
bar
Ambas llamadas a funciones foo y bar éxito y no puedo ver ninguna diferencia. Así que me pregunto si es solo para mejorar la legibilidad, o hay algo que me estoy perdiendo...
Por cierto, en otros shells como dash (/bin/sh está vinculado a dash en debian/ubuntu) falla al usar la función function palabra clave.
Respuesta aceptada:
AFAIK no hay diferencia, aparte del hecho de que la segunda versión es más portátil.