hr9@srv001:/home/adm/hr9> echo "$KSH_VERSION"
@(#)MIRBSD KSH R39 2009/08/01
hr9@srv001:/home/adm/hr9> VAR1=""
hr9@srv001:/home/adm/hr9> VAR2=""
hr9@srv001:/home/adm/hr9> [ ! "${VAR1}" -a "${VAR2}" ] && echo "Erreur"
<Pas d'erreur>
Avec la nouvelle machine
hr9@srv002:/home/adm/hr9> echo "$KSH_VERSION"
@(#)MIRBSD KSH R56 2018/01/14
hr9@srv002:/home/adm/hr9> echo "$KSH_VERSION"
@(#)MIRBSD KSH R56 2018/01/14
hr9@srv002:/home/adm/hr9> VAR1=""
hr9@srv002:/home/adm/hr9> VAR2=""
hr9@srv002:/home/adm/hr9> [ ! "${VAR1}" -a "${VAR2}" ] && echo "Erreur"
hr9@srv002:/home/adm/hr9> VAR2=""
hr9@srv002:/home/adm/hr9> [ ! "${VAR1}" -a "${VAR2}" ] && echo "Erreur"
Erreur
Consigne :
- Ne pas utiliser dans les tests les opérateurs "-a" (AND) et "-o" (OR)
Préférer les syntaxes :
- pour AND : [ condition1 ] && [ condition2 ]
- pour OR : [ condition1 ] || [ condition2 ]
ou
- pour AND : [[ condition1 && condition2 ]]
- pour OR : [[ condition1 || condition2 ]]
Et les regroupements :
[[ (condition1 && condition2) || condition3 ]]
Attention aux autres subtilités de l'opérateur [[ ... ]] (opérateurs numériques < == >, globalisation ... )
Aucun commentaire:
Enregistrer un commentaire