#1 Le 21/11/2009, à 00:44
- Dunatotatos
[Résolu] récursivité dans des scripts
Bonjour tout le monde,
Grand fan d'algorithmes en tout genre, la récursivité fait partie de mon quotidien. Seul problème : les scripts bash n'accepte pas la récursivité "directement". Je suis donc obligé de créer un script intermédiaire qui ne contient que le lancement de mon premier script.
*hum*... exemple :
##script.sh :
##un algorithme de tri ou je ne sais quoi d'autre contenant un appel :
sh script.sh
ne fonctionne pas. Je suis obligé d'utiliser un moyen détourné :
##script.sh :
##un algorithme de tri ou je ne sais quoi d'autre contenant un appel :
sh script2.sh
avec :
##script2.sh :
sh script.sh
Ça fonctionne, mais c'est pas joli comme méthode. Y'a-t-il une solution plus "propre" ?
Merci d'avance
Duna
Dernière modification par Dunatotatos (Le 21/11/2009, à 12:58)
#2 Le 21/11/2009, à 00:59
- coethium
Re : [Résolu] récursivité dans des scripts
je viens de faire un rapide test ainsi :
#!/bin/bash
$0
Attention, script récursif trèèèès grourmand puisqu'aucun test de fin
Hors ligne
#3 Le 21/11/2009, à 01:22
- Hizoka
Re : [Résolu] récursivité dans des scripts
en fait ça depend ce que tu veux faire dans les dossiers...
si c'est un travail sur des fichiers, avec un find c'est recursif par exemple...
sinon tu implente des boucles dans ton script...
genre :
find "${PWD}" - type d | while read dossier
do
actions a faire dans le dossier
done
KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github
Hors ligne
#4 Le 21/11/2009, à 10:44
- Dunatotatos
Re : [Résolu] récursivité dans des scripts
coethium > le $0 fait appel au script lui-même ? (chose marrante : quand je le lance en "sh script.sh", le "script.sh is not found". Par contre, "./script.sh" ne pose pas de problème ^^)
Hizoka > Il me semble qu'un théorème dit effectivement que tout programme récursif peut être dérécursifié. Mais l'itératif est parfois bien moins compréhensible et beaucoup plus difficile à écrire que le récursif. Ton exemple est assez simple pour être compréhensible (et encore que, tu utilises une fonction récursive dans le tas...), mais ce n'est pas le cas de tous les scripts. Ce que je cherche, c'est à appeler le script.sh dans mon script.sh (du récursif pur et dur quoi )
#5 Le 21/11/2009, à 12:09
- Hizoka
Re : [Résolu] récursivité dans des scripts
donc en effet il faut appeller $0.
exec $0
KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github
Hors ligne
#6 Le 21/11/2009, à 12:57
- Dunatotatos
Re : [Résolu] récursivité dans des scripts
D'accord, merci à tous les deux
#7 Le 21/11/2009, à 13:02
- compte supprimé
Re : [Résolu] récursivité dans des scripts
Tu connais ça ? http://abs.traduc.org/abs-fr/ch33s05.html