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/11 16:13] – [Opérateurs logiques, Conditions, Boucles] 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 8: Ligne 8:
 |< 100% 10% 10% 50% 30% >| |< 100% 10% 10% 50% 30% >|
 ^  Opérateur  ^  Fonction  ^ Explication  ^  Exemple  ^ ^  Opérateur  ^  Fonction  ^ Explication  ^  Exemple  ^
-|  ''!''  |  négation  |Renvoie ''vrai'' si le test est faux  | <sxh bash>[ -"A" ]+|  ''!''  |  négation  |Renvoie ''vrai'' si le test est faux  | <sxh bash>[ -"A" ]
 echo $? echo $?
 0 0
-[ ! -"A" ]+[ ! -"A" ]
 echo $? echo $?
 1 1
 </sxh> | </sxh> |
-|  ''-a''  |  et logique  |Renvoie ''vrai'' si les deux variables sont ''vrai''  |  | +|  ''-a'' ou ''&&''  |  et logique  |Renvoie ''vrai'' si les deux variables sont ''vrai''  |<sxh bash>[ -n "A" -a -n "B"
-|  ''-o''  |  ou logique  |Renvoie ''vrai'' si l'une des deux variables est ''vrai''  |  |+echo $? 
 +
 +</sxh>  | 
 +|  ''-o'' ou ''||''  |  ou logique  |Renvoie ''vrai'' si l'une des deux variables est ''vrai''  |<sxh bash>[ -n "A" -o -n ""
 +echo $? 
 +
 +</sxh>  |
  
 ==== Pour les chaînes de caractères ==== ==== Pour les chaînes de caractères ====
Ligne 22: 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 47: Ligne 53:
 1 1
 </sxh> | </sxh> |
-|  ''-n''  |  non vide  |Renvoie ''vrai'' si la chaîne n'est pas vide  | <sxh bash>[ -"" ]+|  ''-n''  |  non vide  |Renvoie ''vrai'' si la chaîne n'est pas vide  | <sxh bash>[ -"" ]
 echo $? echo $?
 1 1
-[ -"A" ]+[ -"A" ]
 echo $? echo $?
 0 0
Ligne 57: 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 103: 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 136: Ligne 156:
 echo $? echo $?
 0 0
 +</sxh> |
 +|  ''-h''  |  lien existant  |Renvoie ''vrai'' si l'objet existe et qu'il a est un lien symbolique  | <sxh bash>ln -s /etc/issue /home/user/
 +[ -h /home/user/issue ]
 +echo $?
 +0
 +[ -h /etc/issue ]
 +echo $?
 +1
 </sxh> | </sxh> |
  
Ligne 152: Ligne 180:
 echo $? echo $?
 0 0
-chmod -r test+chmod +r test
 [ -r test ] [ -r test ]
 echo $? echo $?
Ligne 160: Ligne 188:
 echo $? echo $?
 0 0
-chmod -w test+chmod +w test
 [ -w test ] [ -w test ]
 echo $? echo $?
Ligne 168: Ligne 196:
 echo $? echo $?
 0 0
-chmod -x test+chmod +x test
 [ -x test ] [ -x test ]
 echo $? echo $?
Ligne 186: Ligne 214:
 </sxh> | </sxh> |
  
-===== 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 207: 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 229: 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.1583939588.txt.gz
  • Dernière modification : 2020/03/11 14:13
  • (modification externe)