1 votes

Empêcher la ré-inclusion de bash

J'ai un nid de bash scripts qui peuvent s'approvisionner les uns les autres, par exemple, a.sh approvisionne b.sh approvisionne a.sh etc... À part une nouvelle conception, qui n'est pas toujours réalisable, quelles sont les meilleures pratiques pour éviter une boucle de source ?

Une de mes approches est d'utiliser la présence d'une fonction donnée qui indique qu'il ne faut pas refaire ce script, par ex.

a.sh: 
    declare -F a
    if [ $? -eq 0 ]
    then
        return
    fi
    ...
    function a()
    {
    }

Une autre solution est d'avoir une variable par fichier "$sourced_a_sh" et, si elle est définie, de la renvoyer.

Cependant, ils semblent tous assez compliqués. Existe-t-il un moyen plus agréable ?

1voto

Rachel Blackman Points 81

Vous pouvez ajouter ceci comme première ligne dans votre script a.sh :

[ "$sourced_a_sh" != "" ] && return || sourced_a_sh=.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X