Existe-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 il y en a tellement parce que par exemple, il est toujours exécuté en un seul passage (ligne après ligne)?
S'il n'y a pas de déclarations avancées, que dois-je faire pour faciliter la lecture de mon script. Il est assez long et ces définitions de fonctions au début, mélangées à des variables globales, rendent mon script laid et difficile à lire/à comprendre)? Je demande à connaître certaines pratiques bien connues/meilleures pour de tels cas.
Par exemple:
# something like forward declaration
function func
# execution of the function
func
# definition of func
function func
{
echo 123
}
Grande question. J'utilise un modèle 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 réellement à s'exécuter qu'à la dernière ligne. En passant "$@"
à main (), vous pouvez accéder aux arguments de la ligne de commande $1
, $2
, et al comme vous le feriez normalement.
Lorsque mes scripts bash augmentent trop, j'utilise un mécanisme d'inclusion:
Fichier allMyFunctions
:
foo() {
}
bar() {
}
baz() {
}
Fichier main
:
#!/bin/bash
. allMyfunctions
foo
bar
baz