"if" a multiple argument
Résolu
Char Snipeur
Messages postés
10112
Date d'inscription
Statut
Contributeur
Dernière intervention
-
zipe31 Messages postés 34620 Date d'inscription Statut Contributeur Dernière intervention -
zipe31 Messages postés 34620 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
j'essai de faire ça :
if [ -z $mode -o $mode="ref"] ;then...
mais ça ne fonctionne pas comme je le voudrai, je n'arrive pas à utilise plusieurs argument de test dans le if, et je ne trouve pas d'exemple. (en espérant que c'est clair).
--
La vrai soumission c'est quand les esclaves s'inquiètent du cours du coton.
Char Snipeur
j'essai de faire ça :
if [ -z $mode -o $mode="ref"] ;then...
mais ça ne fonctionne pas comme je le voudrai, je n'arrive pas à utilise plusieurs argument de test dans le if, et je ne trouve pas d'exemple. (en espérant que c'est clair).
--
La vrai soumission c'est quand les esclaves s'inquiètent du cours du coton.
Char Snipeur
1 réponse
-
Salut,
if [ -z "${mode}" -o "${mode}" = "ref" ] ;then...
Attention aux espaces avant et après chaque crochet ainsi qu'autour du signe "égale" !
Les quotes aussi sont très importantes et prendre l'habitude d'entourer ses variables avec des accolades.
-
-
Par contre, les guillemets ne sont pas nécessaire.
Ils ne sont pas nécessaire entre double crochets, par contre ils sont recommandés entre simple crochet.
$ B="Un saut de ligne" $ C="${B}" $ echo "${B}";echo "${C}" Un saut de ligne Un saut de ligne $ echo ${B};echo "${C}" Un saut de ligne Un saut de ligne $ if [ ${B} = "${C}" ]; then echo "OK"; else echo "Bad"; fi bash: [: trop d'arguments Bad $ if [ "${B}" = "${C}" ]; then echo "OK"; else echo "Bad"; fi OK $
Autre exemple :
$ V="" $ [ "${V}" = "" ] && echo "Vide ou non définie" || echo "Inconnue" Vide ou non définie $ [ ${V} = "" ] && echo "Vide ou non définie" || echo "Inconnue" bash: [: = : opérateur unaire attendu Inconnue $ -
-
-
-