# Script shell (je débute...)

**URL:** <https://www.debian-fr.org/t/script-shell-je-debute/25647>\
**Category:** Programmation\
**Created:** [Février 20, 2016, 9:46 UTC](https://www.debian-fr.org/t/script-shell-je-debute/25647 "2016-02-20T21:46:15Z")\
**Posts on this page:** 11\
**Page:** 1

<div class="post-metadata">

**Author:** ![totola](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/t/3be4f8/32.png) [@totola](https://www.debian-fr.org/u/totola)\
**Post date:** [Février 20, 2016, 9:46 UTC](https://www.debian-fr.org/t/script-shell-je-debute/25647/1 "2016-02-20T21:46:15Z")

</div>

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](http://script1.sh)”  
“[2.script2.sh](http://2.script2.sh)”  
“[3.script3.sh](http://3.script3.sh)”

Est-ce possible? Comment?  
Merci

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

---

<div class="post-metadata">

**Author:** ![ggoodluck47](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/g/c67d28/32.png) [@ggoodluck47](https://www.debian-fr.org/u/ggoodluck47)\
**Post date:** [Février 20, 2016, 9:46 UTC](https://www.debian-fr.org/t/script-shell-je-debute/25647/2 "2016-02-20T21:46:17Z")

</div>

#/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”  
;;

1. 

```
echo "Gentoo"

```

;;  
esac

---

<div class="post-metadata">

**Author:** ![totola](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/t/3be4f8/32.png) [@totola](https://www.debian-fr.org/u/totola)\
**Post date:** [Février 20, 2016, 9:46 UTC](https://www.debian-fr.org/t/script-shell-je-debute/25647/3 "2016-02-20T21:46:18Z")

</div>

Ok, merci!

---

<div class="post-metadata">

**Author:** ![kna](https://www.debian-fr.org/user_avatar/www.debian-fr.org/kna/32/5623_2.png) [@kna](https://www.debian-fr.org/u/kna)\
**Post date:** [Février 20, 2016, 9:46 UTC](https://www.debian-fr.org/t/script-shell-je-debute/25647/4 "2016-02-20T21:46:19Z")

</div>

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

```auto
#!/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
```

---

<div class="post-metadata">

**Author:** ![Totor](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/t/58f4c7/32.png) [@Totor](https://www.debian-fr.org/u/Totor)\
**Post date:** [Février 20, 2016, 9:48 UTC](https://www.debian-fr.org/t/script-shell-je-debute/25647/5 "2016-02-20T21:48:43Z")

</div>

```auto
#!/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)

---

<div class="post-metadata">

**Author:** ![ggoodluck47](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/g/c67d28/32.png) [@ggoodluck47](https://www.debian-fr.org/u/ggoodluck47)\
**Post date:** [Février 20, 2016, 9:48 UTC](https://www.debian-fr.org/t/script-shell-je-debute/25647/6 "2016-02-20T21:48:43Z")

</div>

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 🙂

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 🙂

---

<div class="post-metadata">

**Author:** ![zodar](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/z/3e96dc/32.png) [@zodar](https://www.debian-fr.org/u/zodar)\
**Post date:** [Février 20, 2016, 9:48 UTC](https://www.debian-fr.org/t/script-shell-je-debute/25647/7 "2016-02-20T21:48:44Z")

</div>

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

---

<div class="post-metadata">

**Author:** ![Totor](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/t/58f4c7/32.png) [@Totor](https://www.debian-fr.org/u/Totor)\
**Post date:** [Février 20, 2016, 9:48 UTC](https://www.debian-fr.org/t/script-shell-je-debute/25647/8 "2016-02-20T21:48:44Z")

</div>

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

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

---

<div class="post-metadata">

**Author:** ![ggoodluck47](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/g/c67d28/32.png) [@ggoodluck47](https://www.debian-fr.org/u/ggoodluck47)\
**Post date:** [Février 20, 2016, 9:48 UTC](https://www.debian-fr.org/t/script-shell-je-debute/25647/9 "2016-02-20T21:48:47Z")

</div>

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](https://www.debian-fr.org/uploads/default/original/1X/924eb3db8bedad6a0d333b02031d3c6a9af9d9c5.gif)

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

---

<div class="post-metadata">

**Author:** ![Totor](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/t/58f4c7/32.png) [@Totor](https://www.debian-fr.org/u/Totor)\
**Post date:** [Février 20, 2016, 9:48 UTC](https://www.debian-fr.org/t/script-shell-je-debute/25647/10 "2016-02-20T21:48:56Z")

</div>

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.

---

<div class="post-metadata">

**Author:** ![BBT1](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/b/ecc23a/32.png) [@BBT1](https://www.debian-fr.org/u/BBT1)\
**Post date:** [Février 20, 2016, 9:48 UTC](https://www.debian-fr.org/t/script-shell-je-debute/25647/11 "2016-02-20T21:48:56Z")

</div>

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