#1 Le 21/09/2014, à 14:19
- reivillo
[Résolu]?La Commande Case / Esac de Bash?
Bonjour @ Toutes, & Tous.
Je viens vous demander une aide au sujet de la commande case / esac de Bash.
Depuis lui avoir été infidèle des mois, j'ai perdu beaucoup de repaires.
Donc voici le cœur du sujet:
Je souhaiterai une sortie Valide pour un Champs d' ENTRY, allant de ENTRY >= 10 à ENTRY <= 100,
et c'est là, que mes neurones font du zèle, ou la grève!(allez savoir...)
Je vous remerci par avance pour votre aide.
Reivillo.
#!/bin/bash
ENTRY=10
case $ENTRY in
*[10 - 100]) echo "Valide";;
*) echo "Invalide"
esac
Dernière modification par reivillo (Le 21/09/2014, à 19:56)
Version LinuxMint 13 (maya-mate(32-bit)) LTS Noyau 3.2.0-39-generic (06-04-2013)
Sur http://www.linuxmint.com/edition.php?id=103
Hors ligne
#2 Le 21/09/2014, à 16:13
- pingouinux
Re : [Résolu]?La Commande Case / Esac de Bash?
Bonjour,
Sans case
((ENTRY>=10 && ENTRY<=100)) && echo "Valide" || echo "Invalide"
Hors ligne
#3 Le 21/09/2014, à 16:29
- reivillo
Re : [Résolu]?La Commande Case / Esac de Bash?
Bonjour pingouinux.
Merci pour ta Réponse.
Bien sûr, je peut le faire d'autres façons...
Mais je Chercher la Syntaxe pour Case, spécifiquement.
Je pense pourtant l'avoir déjà vu.
Version LinuxMint 13 (maya-mate(32-bit)) LTS Noyau 3.2.0-39-generic (06-04-2013)
Sur http://www.linuxmint.com/edition.php?id=103
Hors ligne
#4 Le 21/09/2014, à 16:54
- pingouinux
Re : [Résolu]?La Commande Case / Esac de Bash?
Je n'ai pas trouvé plus joli, mais tu as déjà dû y penser.
case $ENTRY in
10|11|12|13|14|15|16|17|18|19|20|21|22|23|24|25|26|27|28|29|30|31|32|33|34|35|36|37|38|39|40|41|42|43|44|45|46|47|48|49|50|51|52|53|54|55|56|57|58|59|60|61|62|63|64|65|66|67|68|69|70|71|72|73|74|75|76|77|78|79|80|81|82|83|84|85|86|87|88|89|90|91|92|93|94|95|96|97|98|99|100) echo Valide;;
*) echo Invalide
esac
Tu peux générer la liste de nombres ainsi :
seq 10 100 | tr "\n" "|" | sed 's/.$/)\n/'
Hors ligne
#5 Le 21/09/2014, à 17:07
- reivillo
Re : [Résolu]?La Commande Case / Esac de Bash?
Mais c'est vraiment pas Beau, tu en conviendras...
Je continue mes recherches.
Version LinuxMint 13 (maya-mate(32-bit)) LTS Noyau 3.2.0-39-generic (06-04-2013)
Sur http://www.linuxmint.com/edition.php?id=103
Hors ligne
#6 Le 21/09/2014, à 17:34
- pingouinux
Re : [Résolu]?La Commande Case / Esac de Bash?
case $ENTRY in
[1-9][0-9]|100) echo Valide;;
*) echo Invalide
esac
Hors ligne
#7 Le 21/09/2014, à 18:14
- reivillo
Re : [Résolu]?La Commande Case / Esac de Bash?
Merci.
Je pense que tu y es...
J'essaye maintenant (de comprendre ta Syntaxe)pour 200, au lieu de 100.
(je ne sais pas pourquoi j'ai mis 100, dans ma Question, m'enfin...)
Version LinuxMint 13 (maya-mate(32-bit)) LTS Noyau 3.2.0-39-generic (06-04-2013)
Sur http://www.linuxmint.com/edition.php?id=103
Hors ligne
#8 Le 21/09/2014, à 19:18
- pingouinux
Re : [Résolu]?La Commande Case / Esac de Bash?
Pour 200, on peut adapter la commande ci-dessus
[1-9][0-9]|1[0-9][0-9]|200) echo Valide;;
Ou alors, en trichant (utilisation inutile du case)
case $ENTRY in
*) ((ENTRY>=10 && ENTRY<=200)) && echo Valide || echo Invalide
esac
Hors ligne
#9 Le 21/09/2014, à 19:54
- reivillo
Re : [Résolu]?La Commande Case / Esac de Bash?
Encore Merci, pour le temps que tu as consacré à ce sujet.
J'adopte donc ceci:
Pour 200, on peut adapter la commande ci-dessus
[1-9][0-9]|1[0-9][0-9]|200) echo Valide;;
Je mets [Résolu], en bout de titre,
à moins qu'il y a une manip dédiée à cela.(pas vu!)
Bonne soirée.
Version LinuxMint 13 (maya-mate(32-bit)) LTS Noyau 3.2.0-39-generic (06-04-2013)
Sur http://www.linuxmint.com/edition.php?id=103
Hors ligne