Vous n'êtes pas identifié(e).
Hors ligne
Y − 3HG − Auto-hébergé
Hors ligne
poste la question OUi NON et stocke la réponse dans la variable ${reponse} en bash
" La plus importante et la plus négligée de toutes les conversations, c'est l'entretien avec soi-même. "
Chancelier Oxenstiern.
536920766f7573206172726976657220c3a0206c69726520c3a7612c20632765737420717565206e6f757320706172746167656f6e73206c6573206dc3aa6d65732063656e747265732064e28099696e74c3a972c3aa74732e
Hors ligne
Hors ligne
Hors ligne
echo -n 'Doit-on faire la sauvegarde ? (o/n) '
read maj
if [ "$maj" = o ] || [ "$maj" = O ] || [ "$maj" = oui ] || [ "$maj" = OUI ] ; then
......
fi
" La plus importante et la plus négligée de toutes les conversations, c'est l'entretien avec soi-même. "
Chancelier Oxenstiern.
536920766f7573206172726976657220c3a0206c69726520c3a7612c20632765737420717565206e6f757320706172746167656f6e73206c6573206dc3aa6d65732063656e747265732064e28099696e74c3a972c3aa74732e
Hors ligne
Donc il faut répondre soit O ou OUI, et tout ceci étant insensible à casse.
Donc O, o, Oui, OUI, oUI, etc conviendront mais pas « ou » par exemple
Hors ligne
Je propose une solution qui utilise les possibilités de correspondance avec une expression
rationnelle. Ça ne marche pas avec les versions de bash < 3.0, la version proposée
en Jessie devrait donc possédée cette fonctionnalité.
regex="^[Oo]([Uu][Ii])?$"
read -p "Doit-on faire la sauvegarde ? (o/n) : " maj
if [[ "$maj" =~ $regex ]]; then
echo on fait la sauvegarde
fi
Donc il faut répondre soit O ou OUI, et tout ceci étant insensible à casse.
Donc O, o, Oui, OUI, oUI, etc conviendront mais pas « ou » par exemple
Magnifique
" La plus importante et la plus négligée de toutes les conversations, c'est l'entretien avec soi-même. "
Chancelier Oxenstiern.
536920766f7573206172726976657220c3a0206c69726520c3a7612c20632765737420717565206e6f757320706172746167656f6e73206c6573206dc3aa6d65732063656e747265732064e28099696e74c3a972c3aa74732e
Hors ligne
Hors ligne
Pages perso : feh, omegat, udisks, passerelle, schroot vraiment transparent
Hors ligne
saque eud dun (patois chtimi : fonce dedans)
Hors ligne
Hors ligne
Dernière modification par Philou92 (31-01-2016 13:10:25)
Tousse antique Ovide !
Hors ligne
Dernière modification par enicar (31-01-2016 10:32:23)
Hors ligne
Et comme le sujet du fil est d'avoir une fonction oui/non
on peut mettre tout cela dans une fonction :
Bon, je pense que le sujet est résolu, non ?
Hors ligne
Hors ligne
@enicar: peux tu nous expliquer ce petit bout de code:
grep -q -E -i '^o(ui)?$'
Oui bien sûr
On commence par les options de grep :
-q : n'affiche pas les résultats, dit nous seulement si il y a correspondance.
-E : utilise des motifs étendus (car c'est plus simple).
-i : la correspondance est insensible à la casse.
J'utilise des motifs étendus car dans les motifs de base il faut
rajouter des \ à tout bout de champ…
L'expression rationnelle '^o(ui)?$', je la mets entre
apostrophes simples pour éviter que le shell ne les interprête.
^ : début de chaine.
o : le caractère o
(ui)? : est une sous expression :
( : debut de sous expression
ui : la chaîne ui
) : fin de la sous expression
? : quantificateur qui veut dire zéro ou une fois le caractère ou la sous expression qui le/la précède.
$ : fin de chaine.
Dit en français, je demande une chaine qui commence par un « o » et
qui peut être suivit par « ui » ou non.
voilà
Dernière modification par enicar (31-01-2016 19:15:49)
Hors ligne
Portez la paix
Patrick Allaire, ptre
Hors ligne
Hors ligne
Et puis, si c'est NON, le code de retour du script sera à "1".
Plutôt que de créer une variable, j'utilise la variable bash REPLY
=======
Sinon, on peut aussi en faire une fonction :
Dernière modification par MicP (12-03-2016 06:52:40)
Hors ligne