variable una script resultado pasar parametros guardar funciones entorno cómo con comando bash function sh forward-declaration

una - ¿Forward declaraciones de función en un Bash o un script de Shell?



variables en bash (2)

Cuando mis scripts bash crecen demasiado, uso un mecanismo de inclusión:

Archivo allMyFunctions :

foo() { } bar() { } baz() { }

Archivo main :

#!/bin/bash . allMyfunctions foo bar baz

¿Existe tal cosa en bash o al menos algo similar (trabajo alternativo) como declaraciones hacia adelante, bien conocido en C / C ++, por ejemplo?

¿O hay tal cosa porque, por ejemplo, siempre se ejecuta en un pase (línea tras línea)?

Si no hay declaraciones directas, ¿qué debo hacer para que mi script sea más fácil de leer? Es bastante largo y estas definiciones de funciones al principio, mezcladas con variables globales, hacen que mi script se vea feo y difícil de leer / comprender). Estoy pidiendo aprender algunas buenas prácticas / conocidas para tales casos.

Por ejemplo:

# something like forward declaration function func # execution of the function func # definition of func function func { echo 123 }


Gran pregunta Utilizo un patrón como este para la mayoría de mis scripts:

#!/bin/bash main() { foo bar baz } foo() { } bar() { } baz() { } main "$@"

Puede leer el código de arriba a abajo, pero en realidad no comienza a ejecutarse hasta la última línea. Al pasar "$@" a main (), puede acceder a los argumentos de la línea de comandos $1 , $2 y demás, tal como lo haría normalmente.