Il faut un point-virgule ou un saut de ligne après MainDescriptor.
Ça va planter le programme parce que l'interruption ne retourne pas.
bra . dans un programme est toujours un bogue.
if [ "$DEBUG" == "1" ]
then
...
else
...
fi
Après, tu peux lancer: DEBUG=1 ./monscript.sh
N'oublie pas de rajouter -g à tes flags de compilation/assemblage/linking non plus si DEBUG=1.
Bah oui, ce que j'ai lu, c'est qu'il y avait un seul shell bogué qui nécessitait ça. POSIX spécifie que == "" marche et la plupart des shells de la famille Bourne l'avalent.