Y a-t-il une telle chose dans bash
ou au moins quelque chose de similaire (contournement) comme les déclarations avancées, bien connues en C / C ++, par exemple?
Ou alors il y a une telle chose parce que, par exemple, elle est toujours exécutée en une seule passe (ligne après ligne)?
S’il n’y a pas de déclaration préalable, que dois-je faire pour rendre mon script plus lisible? C’est plutôt long et ces définitions de fonctions au début, mélangées avec des variables globales, rendent mon script moche et difficile à lire / à comprendre)? Je demande à apprendre quelques bonnes pratiques connues pour de tels cas.
Par exemple:
# something like forward declaration function func # execution of the function func # definition of func function func { echo 123 }
Bonne question J’utilise un motif comme celui-ci pour la plupart de mes scripts:
#!/bin/bash main() { foo bar baz } foo() { } bar() { } baz() { } main "$@"
Vous pouvez lire le code de haut en bas, mais il ne commence pas réellement à s’exécuter jusqu’à la dernière ligne. En passant "$@"
à main (), vous pouvez accéder aux arguments de la ligne de commande $1
, $2
et autres, comme vous le feriez normalement.
Lorsque mes scripts bash augmentent trop, j’utilise un mécanisme include:
Fichier allMyFunctions
:
foo() { } bar() { } baz() { }
Fichier main
:
#!/bin/bash . allMyfunctions foo bar baz