bash_base_1

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
bash_base_1 [2020/03/30 10:27] – [Pour tous] nekanbash_base_1 [2021/07/22 08:38] (Version actuelle) – [Pour les expressions régulières] nekan
Ligne 1: Ligne 1:
-~~CLOSETOC~~ 
 ====== Opérateurs logiques, Conditions ====== ====== Opérateurs logiques, Conditions ======
 +<label type="info">Création</label> --- //[[nekan@shyrkasystem.com|Nicolas THOREZ]] 2020/03/11 15:37//
  
 ===== Opérateurs logiques ===== ===== Opérateurs logiques =====
Ligne 16: Ligne 16:
 </sxh> | </sxh> |
 |  ''-a'' ou ''&&''  |  et logique  |Renvoie ''vrai'' si les deux variables sont ''vrai''  |<sxh bash>[ -n "A" -a -n "B" ] |  ''-a'' ou ''&&''  |  et logique  |Renvoie ''vrai'' si les deux variables sont ''vrai''  |<sxh bash>[ -n "A" -a -n "B" ]
-echo $? 
-0 
-[ -n "A" ] && [ -n "B" ] 
 echo $? echo $?
 0 0
 </sxh>  | </sxh>  |
-|  ''-o'' ou ''||''  |  ou logique  |Renvoie ''vrai'' si l'une des deux variables est ''vrai''  |<sxh bash>[ -n "A" -0 -n ""+|  ''-o'' ou ''||''  |  ou logique  |Renvoie ''vrai'' si l'une des deux variables est ''vrai''  |<sxh bash>[ -n "A" --n "" ]
-echo $? +
-+
-[ -n "A" ] || [ -n "" ]+
 echo $? echo $?
 0 0
Ligne 34: Ligne 28:
 Les tests sur les chaînes sont effectués dans une structure à simple crochet. Les tests sur les chaînes sont effectués dans une structure à simple crochet.
  
-<note important>Linux observe une strict sensibilité à la casse. ''A'' est donc différent de ''a''.</note>+<callout type="warning" icon="true" title="Casse">Linux observe une strict sensibilité à la casse. ''A'' est donc différent de ''a''.</callout>
  
 |< 100% 10% 10% 50% 30% >| |< 100% 10% 10% 50% 30% >|
Ligne 69: Ligne 63:
 ==== Pour les nombres ==== ==== Pour les nombres ====
  
-Les tests sur les chaînes sont effectués dans une structure à double crochets.+Les tests sur les nombres sont effectués dans une structure à double crochets.
  
 |< 100% 10% 10% 50% 30% >| |< 100% 10% 10% 50% 30% >|
Ligne 115: Ligne 109:
 1 1
 </sxh>| </sxh>|
 +
 +==== Pour les expressions régulières ====
 +
 +Les expressions régulières sont testées avec des doubles crochets et l'opérateur arithmétique ''=~'', exemple :
 +
 +<sxh bash>WORD="ABCD"
 +[[ $WORD =~ [A-Z]* ]]
 +echo $?
 +0
 +[[ $WORD =~ [0-9]* ]]
 +echo $?
 +1</sxh>
 +
 +Pour plus d'explications sur les expressions régulières : [[powershell_regex|Les expressions régulières (regex)]]
  
 ==== Pour les fichiers et dossiers ==== ==== Pour les fichiers et dossiers ====
Ligne 172: Ligne 180:
 echo $? echo $?
 0 0
-chmod -r test+chmod +r test
 [ -r test ] [ -r test ]
 echo $? echo $?
Ligne 180: Ligne 188:
 echo $? echo $?
 0 0
-chmod -w test+chmod +w test
 [ -w test ] [ -w test ]
 echo $? echo $?
Ligne 188: Ligne 196:
 echo $? echo $?
 0 0
-chmod -x test+chmod +x test
 [ -x test ] [ -x test ]
 echo $? echo $?
Ligne 208: Ligne 216:
 ===== Conditions & Tests ===== ===== Conditions & Tests =====
  
-==== if, then, else, fi ====+==== if, then, elif, else, fi ====
  
 ''if'' permet un test simple. On teste une condition et on applique un traitement si il est ''vrai''. Il est aussi possible d'y applique un autre traitement si le test est ''faux''. Les tests peuvent s'écrire sous deux formes différents : longue et courte. ''if'' permet un test simple. On teste une condition et on applique un traitement si il est ''vrai''. Il est aussi possible d'y applique un autre traitement si le test est ''faux''. Les tests peuvent s'écrire sous deux formes différents : longue et courte.
Ligne 227: Ligne 235:
 Dans la forme courte, ''&&'' correspond à ''then'' et ''||'' à ''else''. Dans la forme courte, ''&&'' correspond à ''then'' et ''||'' à ''else''.
  
 +=== elif ===
 +
 +On peut aussi ajouter d'autres conditions après une vérification vrai (''then'') et avant une vérification fausse (''else''). Ces nouvelles conditions sont introduites par ''elif'' selon le format :
 +<sxh bash>if [ "$VAR" == "A" ]
 +then
 +    echo "VAR est égal à A"
 +elif [ "$VAR" == "B" ]
 +then
 +    echo "VAR est égal à B"
 +elif [ "$VAR" == "C" ]
 +then
 +    echo "VAR est égal à C"
 +# ---- Il peut y avoir autant de conditions elif que l'on souhaite ----
 +else
 +    echo "VAR est différent de A, B, C, etc..."
 +fi</sxh>
 ==== case, esac ==== ==== case, esac ====
  
Ligne 249: Ligne 273:
 Chaque valeur de comparaison est indiqué avant un '')''. Si plusieurs valeurs correspondent au même bloc d'instruction, elles doivent être sur la même ligne, séparées par ''|'' et le tout suivit de '')''. Chaque bloc d'instruction doit toujours être terminée par '';;''. En dernière valeur, on peut donner ''*)'' qui symbolise le traitement par défaut. Chaque valeur de comparaison est indiqué avant un '')''. Si plusieurs valeurs correspondent au même bloc d'instruction, elles doivent être sur la même ligne, séparées par ''|'' et le tout suivit de '')''. Chaque bloc d'instruction doit toujours être terminée par '';;''. En dernière valeur, on peut donner ''*)'' qui symbolise le traitement par défaut.
  
- 
- 
- --- //[[nekan@shyrkasystem.com|Nicolas THOREZ]] 2020/03/11 15:37// 
 ~~DISCUSSION~~ ~~DISCUSSION~~
  
  • bash_base_1.1585556827.txt.gz
  • Dernière modification : 2020/03/30 08:27
  • (modification externe)