Bash: ¿Cómo defino funciones en la terminal en varias líneas?

Bash: ¿Cómo defino funciones en la terminal en varias líneas?

¿Cómo defino funciones en la terminal en varias líneas?

# this doesn't work
function my_func { \
  echo "number 5" \
}

Muy basico. Todavía molesto.

Respuesta1

No necesitas \continuar con las líneas aquí. Intentar:

function my_func {
  echo "number 5" 
}

La functionpalabra clave no es obligatoria, puede utilizarla funcname () {...}en su lugar:

my_func() {
  echo "number 5" 
}

Por cierto, la razón por la que no funciona es que las barras invertidas hacen que la definición de la función sea de una sola línea, y las definiciones de funciones de una sola línea deben terminar con un ;in bash.

por ejemplo, esto falla:

my_func () { echo "number 5" }

esto funciona:

my_func () { echo "number 5" ; }

como hace esto:

function my_func { \
  echo "number 5" \
  ; \
}

información relacionada