Script shell (je débute...)

Bonjour,
voilà, je me suis crée 3 scripts shell. J’aimerais en créer un autre permettant à un utilisateur de choisir de lancer l’un des trois.

en gros voici ce que j’aimerais faire:

lancement du script qui poserait une question du type:

“Que voulez-vous faire?”
“1. script1.sh
2.script2.sh
3.script3.sh

Est-ce possible? Comment?
Merci

PS: Auriez-vous des sites à me conseiller afin de me perfectionner dans ce genre de script?

#/usr/bin/env bash

Offrir le choix à l’utilisateur

echo "Quelle Distribution ?"
echo "1 Debian"
echo "2 Gentoo"
read Distrib

case $Distrib in
1)
echo “Debian”
;;

echo "Gentoo"

;;
esac

Ok, merci!

On peut aussi utiliser dialog(1) pour un meilleur look :

#!/bin/sh
# demande un choix à l'utilisateur

dialog --title "Votre distribution" --menu "Choisissez une distribution" \
 20 40 20 1 debian 2 slackware 3 gentoo \
 2>/tmp/distrib-$$

case `cat /tmp/distrib-$$` in
   1) echo "debian" ;;
   2) echo "slackware" ;;
   3) echo "gentoo" ;;
esac
#!/bin/bash
# OBJET : Répondre  à la demande du fil
scripts=( "" script1.sh script2.sh script3.sh )
distribs=( "" debian slackware gentoo )
PS3="Quelle distribution ?"
select distrib in ${distribs[@]}
do
  [ "${distrib}" ] && {
    scripts[${REPLY}]
    break
  }
done

EDIT : A la demande de ggoodluck47, j’ai ajouté l’objet de ce script (et modifié le nom du script associé à la distribution slackware)

Salut Totor,

[quote=“Totor”] #!/bin/bash scripts=( "" script1.sh script1.sh script3.sh ) distribs=( "" debian slackware gentoo ) PS3="Quelle distribution ?" select distrib in ${distribs[@]} do [ "${distrib}" ] && { scripts[${distrib}] break } done [/quote]

Bien sûr tu as lu le mode d’emploi du forum qui recommande d’ouvrir un post personnel pour chaque problème et de ne pas venir polluer le post des copains :slightly_smiling:

A propos de ton script : Prends tout de suite la bonne habitude de mettre des commentaires et de dire en début de script ce qu’il esr sensé faire :slightly_smiling:

Ben c’est formulé différemment, mais il remplit la même fonction que les précédents (si je lis bien) :slightly_smiling:

Salut ggoodluck47,
Pourquoi devrais-je ouvrir un post pour répondre à une demande ? :unamused:

Question commentaire, je te conseille de commencer par le tiens. Je te conseille également de comprendre la signification de la balise “code”

Enfin à titre de documentation, je te conseille vivement de consulter le man du bash et plus particulièrement les paragraphes dédiés aux tableaux, syntaxe “select” associée à la signification de la variable PS3.
:wink:

Salut,

Tu balances un script sans un mot d’explication, sans un commentaire sans une recommandation. Comment veux tu qu’unlecteur puisse deviner que c’est une réponse !

En lisant le script, en devinant tes pensées. :smt006

La réponse de TOTOR à été supprimée par mes soins et s’il n’est pas content il peut quitter ce forum

MDR !!! Il n’y avait absolument rien d’insultant ni de méprisant dans ma réponse.
Tu fais simplement preuve de faiblesse; incapable de te défendre devant ma réponse.
C’est assez radicale et puérile tu ne trouves pas ?
Je suis loin d’être mécontent… j’en ai vu d’autre…

Que vas-tu faire ? à nouveau supprimer cette réponse ? Voire même toutes celles que j’ai pu rédigé. Alors qu’elles sont bien plus formatrices et innovantes ?
Et bien soit… fait comme tu veux. Profites-en pour me bannir si ça te fait plaisir puisque tu n’es même pas capable de te rendre compte que je peux vous apporter quelque chose.

select peut-être utile pour des menus simples dans des scripts
(oui je sais j’arrive encore après la bataille :smiley:)
http://www.faqs.org/docs/bashman/bashref_20.html#SEC20