Bonjour,
Existe-t-il une equivalence du GOTO de DOS en BASH ?
Dans une étape de mon script, je souhaite sauter certaines phases et me trouver à un endroit précis.
Merci
Laurent
Bonjour,
Existe-t-il une equivalence du GOTO de DOS en BASH ?
Dans une étape de mon script, je souhaite sauter certaines phases et me trouver à un endroit précis.
Merci
Laurent
sauf exception tres particuliere et tres rare fait des fonctions PAS DE GOTO, soyons propre !
GOTO = gros porc en terme de programmes et de script ne l'utilise que dans les quelques tres rares cas ou il n'est pas possible de faire autrement
PS (jamais vu)....
Quand tu fais de la gestion fine d'erreur... A ce moment là, les gotos _descendants_ peuvent améliorer la visibilité du code, et simplifier les appels..Envoyé par bster
Pour répondre à la question, je ne connais pas de goto en bash.
Il peut être suppléé par des case, des if ou des fonctions.
Maintenant, pour le débat sur la pertinence de cette instruction, je ne crois pas que l'on puisse qualifier ceux qui la pratiquent de "gros porcs" !
La discussion sur ce point peut se poursuivre ici
Bonjour,
l'utilité de l'instruction a été largement débatu sur le forum C : Goto or not goto?
En fait j'ai fait un script bash qui recolte des infos sur mon serveur.
Et au debut du script je voulais faire une verification sur l'utilitaire "dmidecode" et sortir s'il n'est pas présent.
Dois-je faire ainsi:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 if [[ -e /usr/sbin/dmidecode ]] then mon_script else exit fi function mon_script { tout mon script }
Faire appel à la fonction avant de l'avoir déclarée ne va pas poser un probleme ?
Merci
si en shell une fonction doit être avant l'appelle ... (c'est de l'interprété !)
dans ton cas le goto est tout à fait inutile :
cela est largement suffisant
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 f [[ ! -x /usr/sbin/dmidecode ]] then echo "dmidecode absent" exit 1 fi tout mon script
Si je veux mettre (echo "dmidecode ok") pour mon fichier de log, je le place ou ?
ainsi ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 if [[ ! -x /usr/sbin/dmidecode ]] echo "DMIDECODE ok" >>/tmp/log then echo "dmidecode absent" exit 1 fi tout mon script
va lire un peut mon tuto sur le shell (voir signature)
et lit jusqu'au bout le bout de code fourni la reponse est dedans
Bonjour,
Il n'existe pas de goto en bash
Tu peux néanmoins le simuler:
While:;do
...
if...;then break;fi
...
break
done
En esperant que ca t'aide
Partager