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 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 smile ).

Dons si quelqu'un à quelques portions de code à m'indiquer pour avancer un peu je suis preneur wink.

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 wink.

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

noireaude a écrit :

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

noireaude a écrit :

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 tongue je vais essayer ton astuce, merci encore.

Hors ligne