# probléme avec une réponse oui ou non

**URL:** <https://www.debian-fr.org/t/probleme-avec-une-reponse-oui-ou-non/19336>\
**Category:** Programmation\
**Created:** [Février 20, 2016, 7:21 UTC](https://www.debian-fr.org/t/probleme-avec-une-reponse-oui-ou-non/19336 "2016-02-20T19:21:24Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![zyriuse](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/z/49beb7/32.png) [@zyriuse](https://www.debian-fr.org/u/zyriuse)\
**Post date:** [Février 20, 2016, 7:21 UTC](https://www.debian-fr.org/t/probleme-avec-une-reponse-oui-ou-non/19336/1 "2016-02-20T19:21:24Z")

</div>

bonjour  
je commence tout juste le scripting en shell. j’ai réaliser un script pour ajouter mes utilisateur samba de part un fichier txt du nom persons le script s’execute correctement mais il ne me demande pas si je veux continuer en rentrant la lettre o ou alors n pour non je n’arrive pas à trouver le probléme merci à vous pour votre aide

[code]# !/bin/sh

# 

function choisir ()  
{  
choix=’'  
local invite ="$\*"  
local reponse  
read -p “$invite” reponse  
case “$reponse” in  
[oO] ) choix=‘o’;;  
[nN] ) choix=‘n’;;

- ) choix="$reponse";;  
esac  
}

# lecture du fichier persones ou se trouve le nom de l’utilisateur

```
 cat persones | while true 

```

do  
read ligne  
if [“$ligne” == “”]  
then  
echo "fin du fichier persones"  
break  
fi

set – $ligne

login=$1  
pass=$2

if [-d “/home/$1”]  
then  
echo "le compte $1 exise deja"  
else  
printf "ete vous sur de vouloir ajouter l’utilisateur $1 \n"  
echo “pour continuer entre o/N:”

```
 if ["$reponse" = "o"]; then	
 	 echo "creation du compte $login"
useradd $1 
echo "creation du compte samba $login"
(echo $pass ; echo $pass) | smbpasswd -a -s $login
 
 else
 # ["$reponse" = "n"];
 
  echo "le compte $1 n'a pas était crée"
fi

```

fi  
done [/code]

---

<div class="post-metadata">

**Author:** ![micky979](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/m/d9b06d/32.png) [@micky979](https://www.debian-fr.org/u/micky979)\
**Post date:** [Février 20, 2016, 7:21 UTC](https://www.debian-fr.org/t/probleme-avec-une-reponse-oui-ou-non/19336/2 "2016-02-20T19:21:24Z")

</div>

Bonjour,

La creation de ta fonction ne semble pas correcte.

Tu ne lis pas la réponse via read après ta question.

---

<div class="post-metadata">

**Author:** ![zyriuse](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/z/49beb7/32.png) [@zyriuse](https://www.debian-fr.org/u/zyriuse)\
**Post date:** [Février 20, 2016, 7:21 UTC](https://www.debian-fr.org/t/probleme-avec-une-reponse-oui-ou-non/19336/3 "2016-02-20T19:21:24Z")

</div>

je viens de modifier à la place je fais appel directement à la fonction comme ceci

` else
	 printf "ete vous sur de vouloir ajouter l'utilisateur $1 \n"
	 echo "pour continuer entre o/N:"
	 function choisir ()
	 if ["$reponse" = "o"]; then	`

la il ne me dit déja plus que ke compte n’a pas etait crée ou bien création du compte bref la il medit juste

`# ./fonctionchoisir.sh
ete vous sur de vouloir ajouter l'utilisateur pipou
pour continuer entre o/N:
fin du fichier persones
`  
mais il ne me laisse toujour pas ecrire le o ou le n

---

<div class="post-metadata">

**Author:** ![micky979](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/m/d9b06d/32.png) [@micky979](https://www.debian-fr.org/u/micky979)\
**Post date:** [Février 20, 2016, 7:21 UTC](https://www.debian-fr.org/t/probleme-avec-une-reponse-oui-ou-non/19336/4 "2016-02-20T19:21:44Z")

</div>

Bonjour,

Ton appel de fonction est incorrecte

Remplace ceci :

` echo "pour continuer entre o/N:"
    function choisir ()
    if ["$reponse" = "o"]; then ` par ` echo "pour continuer entre o/N:"
    choisir
    if ["$reponse" = "o"]; then `

---

<div class="post-metadata">

**Author:** ![thomas.leclerc](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/t/59ef9b/32.png) [@thomas.leclerc](https://www.debian-fr.org/u/thomas.leclerc)\
**Post date:** [Février 20, 2016, 7:21 UTC](https://www.debian-fr.org/t/probleme-avec-une-reponse-oui-ou-non/19336/5 "2016-02-20T19:21:46Z")

</div>

> [@](#):
>
> `echo "le compte $1 n'a pas était crée"`

anéfé, même en shell il font des fôtes d’ortografe . ![:smt061](https://www.debian-fr.org/uploads/default/original/1X/376a123e54e7193dcae33cf24cb02ec6cf65a652.gif)

---

<div class="post-metadata">

**Author:** ![SpaTule](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/s/b5ac83/32.png) [@SpaTule](https://www.debian-fr.org/u/SpaTule)\
**Post date:** [Février 20, 2016, 7:22 UTC](https://www.debian-fr.org/t/probleme-avec-une-reponse-oui-ou-non/19336/6 "2016-02-20T19:22:09Z")

</div>

Ta shebang appelle sh et il me semble qu’en sh on ecrit une fonction de la forme

`function ma_Fonction
{
}`

ou encore

`ma_Fonction ()
{
}`

mais

```auto

```

n’est pas valide pour sh. En bash ça fonctionne par contre

a vérifier…
