![]() |
Bonjour et bienvenu par les États-Unis à la UNIX et Linux Forums! Merci de votre visite et vous joindre à notre communauté mondiale.
|
|
google unix.com
|
|||||||
| Forums | S'inscrire | Forum Rules | Liens | Albums | FAQ | Liste des membres | Calendrier | Recherche | Aujourd'hui, les postes | Marquer les forums comme lus |
| UNIX pour les nuls Questions et réponses Si vous ne savez pas où poster un UNIX ou Linux question, post it here. Tous les systèmes UNIX et Linux, débutants bienvenus! |
Plus d'UNIX et Linux Forum Sujets Vous trouverez peut-être utile
|
||||
| Fil | Thread Starter | Forum | Réponses | Last Post |
| Comment faire pour donner deux conditions du SI ..? | RRVARMA | De programmation et de script Shell | 6 | 04-25-2008 10:33 AM |
| ou réduire les conditions | hitmansilentass | De programmation et de script Shell | 8 | 05-03-2007 06:27 PM |
| plusieurs conditions si / alors | grandtheftander | UNIX pour les nuls Questions et réponses | 4 | 07-21-2006 02:58 PM |
| si avec deux conditions | cin2000 | De programmation et de script Shell | 1 | 01-23-2006 03:21 PM |
| si avec deux conditions-e, & & | Yongho | De programmation et de script Shell | 16 | 06-14-2005 05:46 PM |
![]() |
|
|
LinkBack | Thread Tools | Recherche sur ce Thread | Rate Thread | Modes d'affichage |
|
|
|
||||
|
Deux conditions dans un if
Je suis totalement nouveau avec la programmation bash, et je ne comprends pas comment mettre deux conditions dans un if. Mon code ressemble à ceci:
Code:
h=`date +%k` if [ [ $((h>9)) ] && [ $((h<21)) ] ]; then |
|
||||
|
La coque a une étrange série de syntaxe alternatives pour conditionnels.
Le [n'est pas un délimiteur, mais le nom d'une commande. La façon de l'utiliser pour de multiples expressions, c'est comme ceci: Code:
if [ "$h" -gt 9 ] && [ "$h" -lt 21 ]; then ... fi Code:
if [ "$h" -gt 9 -a "$h" -lt 21 ]; then ... fi Code:
if [ $((h > 9 && h < 21)) == 1 ]; then ... fi Code:
if [[ $h > 9 ]] && [[ $h < 21 ]]; then ... fi |
|
||||
|
Oh boy! Je crois que je suis aux jeunes pour cela. Je suis de la génération Java, bash semble être assez compliqué.
Ces deux semblent fonctionner. Est-ce vraiment la même chose? Code:
if [ $h -gt 9 -a $h -lt 21 ]; then Code:
if [ "$h" -gt 9 ] && [ "$h" -lt 21 ]; then |
|
||||
|
Les guillemets sont principalement pour la sécurité (bonne habitude dans le cas $ h finit contenant une chaîne vide, par erreur, par exemple) et, en théorie, le & & variante pourrait créer deux externes, un processus où ne ferait que créer un. (C'est parce que la théorie [est probablement à l'interne dans les réservoirs modernes, il n'est donc pas en cause externe.)
Shell scripts ne sont pas analysées plus, la syntaxe est peu plus que dans beaucoup d'autres langages de script, ce qui crée quelques complications, mais aussi contribue à rendre la coque extrêmement polyvalent. L'absence de standard, built-in des opérateurs arithmétiques, dès le départ, est une autre source de complexité dans cette affaire. POSIX tente de corriger certaines de ces questions, mais historiquement, les différents shells ont mis au point différentes extensions qui ont alors créé, pour ainsi dire, encore plus de façons différentes à la peau d'un chat. |
![]() |
| Bookmarks |
| Tags |
| si les conditions de déclaration |
| Thread Tools | Recherche sur ce Thread |
| Modes d'affichage | Rate this thread |
|
|