Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 21/11/2009, à 01: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 wink
Duna

Dernière modification par Dunatotatos (Le 21/11/2009, à 13:58)

#2 Le 21/11/2009, à 01: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 big_smile

Hors ligne

#3 Le 21/11/2009, à 02: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, à 11: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 tongue)

#5 Le 21/11/2009, à 13: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, à 13:57

Dunatotatos

Re : [Résolu] récursivité dans des scripts

D'accord, merci à tous les deux big_smile

#7 Le 21/11/2009, à 14:02

compte supprimé

Re : [Résolu] récursivité dans des scripts

Tu connais ça ? http://abs.traduc.org/abs-fr/ch33s05.html smile