probléme avec une réponse oui ou non

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]

Bonjour,

La creation de ta fonction ne semble pas correcte.

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

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

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

anéfé, même en shell il font des fôtes d’ortografe . :smt061

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

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

a vérifier…