Pages : 1
#1 Le 26/07/2010, à 08:57
- noireaude
Question à propos d'un script
Bonjour à tous et toutes, je me permet de faire appel à vous pour quelques infos à propos de la création d'un script.
Je suis en train de m'initier à la création de scripts bash sous Linux et j'ai commencé la création d'un ensemble de scripts que je voudrais totalement interactifs.
Je précise que je suis vraiment pas calé sur le sujet, je viens de commencer et je prend vraiment beaucoup de plaisir à scripter des petites tâches, j'ai vraiment envie de progresser.
Je vais donc essayer d'être le plus précis possible dans mes questions.
Mes scripts se composent donc de plusieurs modules, (on va les nommer ainsi).
Le script de base fait office de menu principal au travers duquel on va lancer les autres selon ces choix et ces besoins.
Le premier problème que je rencontre et que dans l'absolu j'aurais souhaité que chaque modules appelés par le script principal s'executent dans des shells distincts et non dans un sous shell, je n'ai pas encore trouvé la solution pour qu'il en soit ainsi.
Le deuxième problème que je rencontre et le retour d'un script vers l'autre, je voudrais intégrer dans chaques modules qui contiennent aussi chacun un menu, pouvoir retourner dans ce dit menu, voir également dans le menu du script principal.
Le problème qui se pose à ce moment la est que je n'ai pas encore trouvé de solution pour le faire sans le rappeler complètement, ce qui vous vous en doutez crée un nouveau processus à chaque fois.
je ne sais pas trop comment faire également pour choisir une action dans un module et permettre une fois l'action effectuée de retourner dans le menu de ce module pour éventuellement faire un deuxième choix sans le rappeller complètement.
Au final quand je fais un ps -e -f, cela m'indique plusieurs instances du même script ouvertes, avec un pid fifférent à chaque fois ce qui me gène un peu (ça fais pas propre).
J'aurais donc voulu savoir également si on pouvait attribuer in pid à chaque script ou savoir quel était le moyen d'intégrer une commande qui détecte le pid du script à la sortie de celui ci pour pouvoir y intégrer une commande kill, pkil pid par exemple.
Je suis vraiment désolé de vous embêter avec ces questions et je vous assure que j'ai vraiment fouiné partout mais la doc sur le sujet est soit, insuffisemant détaillée, en Anglais ou trop technique pour moi (avouons le ).
Dons si quelqu'un à quelques portions de code à m'indiquer pour avancer un peu je suis preneur .
D'avance merci.
Edit : je vois que mon post a été déplacé, désolé d'avoir apparament posté dans la mauvaise rubrique (oups).
Dernière modification par noireaude (Le 26/07/2010, à 09:35)
Hors ligne
#2 Le 26/07/2010, à 10:24
- iuchiban
Re : Question à propos d'un script
Salut,
pour le retours aux menus après une action, il te faut faire un truc du style :
FLAG=0
while [[ $FLAG -eq 0 ]]
do
AFFICHER_MENU
Effectuer Actions
[...]
A_UN_MOMENT, FLAG=1, donc sortie
done
Ensuite, pour gérer les retours vers le menu principal, du coup, ça donnerait :
FLAG=0
while [[ $FLAG -eq 0 ]]
do
AFFICHER_MENU
1 : module1 (pas de valeur de retour)
2 : module2 (valeur de retour possible)
0 : quitter
case $CHOIX in
1)
./Chemin/vers/Module1
;;
2)
RETOUR=/Chemin/vers/Module1
;;
0)
FLAG=1
;;
done
Ensuite, tu ne peux pas choisir le PID attribué à un process, c'est le SHELL qui s'en charge.
Mais en lançant tes modules dans des sous shells (d'ailleurs, pourquoi ne veux tu pas ce comportement ??), tu peux récupérer le PID du fils et l'attendre.
(./chemin/vers/module1)
PID_MODULE1=$!
(./chemin/vers/module2)
PID_MODULE2=$!
wait
Je sais pas si tu connais ce site, mais c'est vraiment très bien fait pour scripter :
http://abs.traduc.org/abs-fr/
bon courage
C'est depuis que Chuck Norris a laissé la vie sauve à un manchot que l'on dit que Linux est libre.
Chuck Norris n'a pas besoin d'éditer son premier message pour ajouter [Résolu]. Chuck Norris est toujours [Résolu], quoi qu'il arrive.
Hors ligne
#3 Le 26/07/2010, à 10:39
- noireaude
Re : Question à propos d'un script
Merci pour ta réponse précise et rapide.
Pour l'histoire du sous shell, c'est pas que je n'e veut pas, c'est juste qu'à un moment donné je veux lancer une action qui nécécite d'avoir deux shells distincts ouverts.
Pour le site en revanche il me semble que je l'avais dégoté en Anglais je n'avais sans doute pas vu qu'il en exsistait une version traduite, merci beaucoup.
Je vais tester tout cela .
Merci encore.
Dernière modification par noireaude (Le 26/07/2010, à 10:42)
Hors ligne
#4 Le 26/07/2010, à 10:50
- credenhill
Re : Question à propos d'un script
hello
c'est juste qu'à un moment donné je veux lancer une action qui nécécite d'avoir deux shells distincts ouverts..
dans le même terminal ou dans une nouvelle fenêtre ?
Hors ligne
#5 Le 26/07/2010, à 10:56
- noireaude
Re : Question à propos d'un script
Oui quand je dis un autre terminal, j'entends par la un terminal dans une autre fenêtre en effet.
Il faudrait que la comande parte du premier shell, en ouvre un autre en y exécutant directement la commande à lancer.
Je ne sais pas si c'est possible.
Dernière modification par noireaude (Le 26/07/2010, à 10:58)
Hors ligne
#6 Le 26/07/2010, à 11:01
- iuchiban
Re : Question à propos d'un script
Oui quand je dis un autre terminal, j'entends par la un terminal dans une autre fenêtre en effet.
Il faudrait que la comande parte du premier shell, en ouvre un autre en y exécutant directement la commande à lancer.Je ne sais pas si c'est possible.
Ah ben là c'est de la gestion de fenêtre, ce qui n'est pas vraiment classique en scripting shell.
Tu peux essayer en faisant, dans ton script, du
gnome-terminal /Chemin/vers/Module
Sans grande conviction.
C'est depuis que Chuck Norris a laissé la vie sauve à un manchot que l'on dit que Linux est libre.
Chuck Norris n'a pas besoin d'éditer son premier message pour ajouter [Résolu]. Chuck Norris est toujours [Résolu], quoi qu'il arrive.
Hors ligne
#7 Le 26/07/2010, à 11:06
- noireaude
Re : Question à propos d'un script
Comme j'aime ce qui n'est pas classique je vais essayer ton astuce, merci encore.
Hors ligne
Pages : 1