logo Debian Debian Debian-France Debian-Facile Debian-fr.org Forum-Debian.fr Debian ? Communautés logo inclusivité

Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

Vous n'êtes pas identifié(e).


L'icône rouge permet de télécharger chaque page du wiki visitée au format PDF et la grise au format ODT → ODT PDF Export

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
doc:programmation:shells:la-page-man-bash-ii-les-operateurs-lexicographiques [21/02/2023 00:35]
agp91 [La suite c'est ici]
doc:programmation:shells:la-page-man-bash-ii-les-operateurs-lexicographiques [30/04/2023 01:23] (Version actuelle)
arpinux lien mort : page utilisateur absente
Ligne 9: Ligne 9:
     * Création par [[user>​Hypathie]] le 08/04/2014     * Création par [[user>​Hypathie]] le 08/04/2014
     * Testé par [[user>​Hypathie]] en Avril 2014     * Testé par [[user>​Hypathie]] en Avril 2014
-    * Modifié par [[user|agp91]] le 21/02/2022+    * Modifié par **agp91** le 21/02/2022
  
   * Commentaires sur le forum : [[https://​debian-facile.org/​viewtopic.php?​pid=140699#​p140699 | Lien vers le forum concernant ce tuto]] ((N'​hésitez pas à y faire part de vos remarques, succès, améliorations ou échecs !))    * Commentaires sur le forum : [[https://​debian-facile.org/​viewtopic.php?​pid=140699#​p140699 | Lien vers le forum concernant ce tuto]] ((N'​hésitez pas à y faire part de vos remarques, succès, améliorations ou échecs !)) 
Ligne 27: Ligne 27:
  
 <​note>​ <​note>​
-Dans la page du manuel de bash, **les opérateurs des commandes de test** sont nommées ​__**primitives**__.+Dans la page du manuel de bash, **les opérateurs des commandes de test** sont nommés ​__**primitives**__.
 </​note>​ </​note>​
  
-Bash dispose de plusieurs commandes pour **réaliser des tests sur des chaînes de carractères**.+Bash dispose de plusieurs commandes pour **réaliser des tests sur des chaînes de caractères**.
  
   * Les commandes internes **[** et **test**.   * Les commandes internes **[** et **test**.
Ligne 38: Ligne 38:
   * Les commandes **[** et **test** sont disponibles dans leurs versions externe : **/​usr/​bin/​[** et **/​usr/​bin/​test**.   * Les commandes **[** et **test** sont disponibles dans leurs versions externe : **/​usr/​bin/​[** et **/​usr/​bin/​test**.
     * Elles ont toutes les deux la même page de manuel (**man [** ou **man test**).     * Elles ont toutes les deux la même page de manuel (**man [** ou **man test**).
-  * Les commandes internes disposent de primitive ​que n'ont pas les commandes externes.+  * Les commandes internes disposent de primitives ​que n'ont pas les commandes externes.
 </​note>​ </​note>​
  
Ligne 44: Ligne 44:
 __Rappels :__ __Rappels :__
  
-  *  Une commande de test renvoie le code de retour 0 (considérer ​comme vrai) lorsque le test réussi et 1 (considérer ​comme faux) lorsqu'​il échoue.+  *  Une commande de test renvoie le code de retour 0 (considéré ​comme vrai) lorsque le test réussi et 1 (considéreé ​comme faux) lorsqu'​il échoue.
   *  Le code retour d'une commande est mémorisé dans le paramètre spécial $?.   *  Le code retour d'une commande est mémorisé dans le paramètre spécial $?.
   *  L'​opérateur de contrôle **&&​** exécute la commande suivante, si la commande précédente à renvoyée un code de retour égale à 0.   *  L'​opérateur de contrôle **&&​** exécute la commande suivante, si la commande précédente à renvoyée un code de retour égale à 0.
Ligne 56: Ligne 56:
 ==== Syntaxe ==== ==== Syntaxe ====
  
-  * **test OP chaîne** +  * **test OP** [**"​**]**chaîne**[**"​**] 
-  * **[ OP chaîne ]** +  * **[ OP** [**"​**]**chaîne**[**"​**] **]** 
-  * **<​nowiki>​[[</​nowiki>​ OP chaîne <​nowiki>​]]</​nowiki>​**+  * **<​nowiki>​[[</​nowiki>​ OP** [**"​**]**chaîne**[**"​**] **<​nowiki>​]]</​nowiki>​**
  
   * Avec :   * Avec :
     * **Chaîne** est sujette au développement des paramètres.     * **Chaîne** est sujette au développement des paramètres.
     * **OP**, l'une des primitives du tableau suivant.     * **OP**, l'une des primitives du tableau suivant.
- 
-<​note>​ 
-Si l'​opérande (**chaîne**) contient des espaces, il doit être protégé. 
-</​note>​ 
  
 |  Liste des primitives de test sur chaîne ​ || |  Liste des primitives de test sur chaîne ​ ||
Ligne 74: Ligne 70:
  
 <​note>​ <​note>​
-L'opérateur ​**-n** peut-être omis.+  * Si l'opérande (**chaîne**) contient des espaces, il doit être protégé. 
 +  * La primitive ​**-n** peut-être omis.
 </​note>​ </​note>​
  
Ligne 119: Ligne 116:
 ==== Mauvais usages ==== ==== Mauvais usages ====
  
-Les opérateurs ​**-z** et **-n** sont des opérateurs ​unaires, ​il n'accepte ​qu'un seul opérande (argument).\\  +Les directives ​**-z** et **-n** sont des directives ​unaires, ​elles n'acceptent ​qu'un seul opérande (argument).\\  
-Si sa valeur contient des espaces, il doit être protégé par des guillemets doubles.+Si sa valeur contient des espaces, il doit être protégé par des guillemets ​simple ou doubles.\\ 
 +__Rappel__ : Les guillemets simple ne permettent le remplacement des paramètres.
  
-<​code>​+<​code ​user>
 p="​Debian Facile"​ p="​Debian Facile"​
 test -z $p ; echo $? test -z $p ; echo $?
Ligne 135: Ligne 133:
 </​note>​ </​note>​
  
-L'​opérateur ​**-n** revoie un code de retour inattendu, quand un paramètre vide est testé sans protection.\\ ​+La directive ​**-n** revoie un code de retour inattendu, quand un paramètre vide est testé sans protection.\\ ​
 Sauf avec la commande **<​nowiki>​[[</​nowiki>​**. Sauf avec la commande **<​nowiki>​[[</​nowiki>​**.
  
-<​code>​+<​code ​user>
 test -n $p ; echo $? test -n $p ; echo $?
 [ -n $p ] ; echo $? [ -n $p ] ; echo $?
Ligne 154: Ligne 152:
 ==== Astuces ==== ==== Astuces ====
  
-Avec l'​opérateur ​**-z**, nous pouvons nous affranchir de la protection des guillemets en utilisant ​**le remplacement des paramètre** ​et l'​opérateur **+**.\\ ​+Avec la directive ​**-z**, nous pouvons nous affranchir de la protection des guillemets en utilisant ​__le remplacement des paramètres__ ​et l'​opérateur **+**.\\ ​
 (Voir [[https://​debian-facile.org/​doc:​programmation:​shells:​man-bash-vi-les-caracteres-de-transformation-de-parametres#​substitution-par-modification|Substitution de la valeur d'un paramètre]]) (Voir [[https://​debian-facile.org/​doc:​programmation:​shells:​man-bash-vi-les-caracteres-de-transformation-de-parametres#​substitution-par-modification|Substitution de la valeur d'un paramètre]])
-<​code>​+<​code ​user>
 p="​Debian GNU Linux" p="​Debian GNU Linux"
  
Ligne 168: Ligne 166:
 </​file>​ </​file>​
  
-Lors du développement (remplacementd'un paramètre, l’opérateur **+** permet, si la valeur du paramètre est non nulle, de la substituée par une autre valeur (ici x).+Lors du remplacement d'un paramètre, l’opérateur **+** permet, si la valeur du paramètre est non nulle, de la substituée par une autre valeur (ici **x**).
  
-Avec l'​opérateur ​**-n** les guillemets restent nécessaires au cas ou le paramètre mémorise une chaîne vide, sauf avec la commande **<​nowiki>​[[</​nowiki>​**.+Avec la directive ​**-n** les guillemets restent nécessaires au cas ou le paramètre mémorise une chaîne vide, sauf avec la commande **<​nowiki>​[[</​nowiki>​**.
  
-<​code>​+<​code ​user>
 p="​Debian Facile"​ p="​Debian Facile"​
  
 [[ -n ${p+x} ]] ; echo $? [[ -n ${p+x} ]] ; echo $?
-[[ -${p+x} ]] ; echo $?+[[ ${p+x} ]] ; echo $?
  
 unset p unset p
 [[ -n ${p+x} ]] ; echo $? [[ -n ${p+x} ]] ; echo $?
-[[ -${p+x} ]] ; echo $?+[[ ${p+x} ]] ; echo $?
 </​code><​file>​ </​code><​file>​
 0 0
Ligne 326: Ligne 324:
 echo $? echo $?
 </​code><​file>​ </​code><​file>​
-echo $? 
 bash: test: GNU : opérateur unaire attendu bash: test: GNU : opérateur unaire attendu
 2 2
Ligne 348: Ligne 345:
 =====Tuto précédent ===== =====Tuto précédent =====
  
-[[atelier:​chantier:​bash:​les-operateurs-de-test-sur-fichiers|Bash : Les opérateurs de test sur fichiers]]+[[atelier:​chantier:​bash:​les-operateurs-sur-parametres|Bash : Les opérateurs de test sur paramètres]]
  
 =====La suite c'est ici ===== =====La suite c'est ici =====
  
 [[atelier:​chantier:​bash:​les-operateurs-de-test-sur-fichiers|Les opérateurs de test sur fichiers]] [[atelier:​chantier:​bash:​les-operateurs-de-test-sur-fichiers|Les opérateurs de test sur fichiers]]
doc/programmation/shells/la-page-man-bash-ii-les-operateurs-lexicographiques.1676936150.txt.gz · Dernière modification: 21/02/2023 00:35 par agp91

Pied de page des forums

Propulsé par FluxBB