Bash si la chaîne = ceci ou cela
Essayer d'écrire un script qui va lire ce que l'utilisateur a imput... je sais c'est basique mais im coincé sur la première si..
echo "Please enter yes or no (y/n)?"
read string
if [ $string = "y" -o "n" ]
then
echo "User selected $string"
else
echo "You didn't enter y/n !!!"
fi
Je voudrais qu'il soit si [ $backup = "y" ou "n" ]
Des idées?
if [ "$string" = "y" -o "$string" = "n" ]
- Poster une réponse.
- Merci de poster une réponse, donc je peux le marquer comme résolu.
Vous devez vous connecter pour publier un commentaire.
Pas la question que vous avez demandé, mais... avez-Vous dit à l'utilisateur d'entrer "oui" ou "non", mais seulement un test pour y ou n - sûr, vous leur avez donné un indice, mais les utilisateurs sont à la pointe-résistant. Alors peut-être un looser test est dans l'ordre:
Qui reconnaît à toute variation qui commence par O ou N - généralement c'est suffisant, mais vous pouvez serrer les tests. Aussi, puisque vous aurez probablement envie de faire quelque chose de différent avec un oui ou un non réponse, vous pouvez étendre le cas (j'ai aussi resserré les tests dans celui-ci):
Vous pouvez le faire avec des instructions if, mais je trouve plus lisible lorsque plus de deux alternatives sont possibles et que le test est approprié pour le cas de la syntaxe.
Utiliser cette syntaxe dans
bash
:Pour plusieurs instructions conditionnelles telles que
OR
, utilisation:bash
prend également en charge le non-standard[[ ... ]]
expression, qui peut traiter un composé de comparaison à l'aide d'une seule commande, plutôt que de 2[
commandes:&&
travaillait comme OU! :-OVous pouvez également essayer:
J'ai beau solution serait avec
case
, qui est plus facile à étendre, si vous voulez faire de votre entrée plus complexeÀ partir de là, vous pouvez facilement le modifier pour qu'il accepte les lettres en Majuscules ou quoi que ce soit:
Vérifier cas des déclarations pour plus d'info.