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 →
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
atelier:chantier:bash:le-caractere-pour-commenter [23/06/2024 18:59] ubub [Usages] |
atelier:chantier:bash:le-caractere-pour-commenter [26/06/2024 11:31] (Version actuelle) agp91 [Conclusions] |
||
---|---|---|---|
Ligne 4: | Ligne 4: | ||
* Niveau requis : {{tag>débutant}} | * Niveau requis : {{tag>débutant}} | ||
* Pour aller vers : {{tag>avisé}} | * Pour aller vers : {{tag>avisé}} | ||
- | * Commentaires : Pour l'interpréteur de commande bsh (et zsh aussi). | + | * Commentaires : Pour l'interpréteur de commande bash (et zsh aussi). |
* Débutant, à savoir : [[:doc:systeme:commandes:le_debianiste_qui_papillonne|Utiliser GNU/Linux en ligne de commande, tout commence là !.]] :-) | * Débutant, à savoir : [[:doc:systeme:commandes:le_debianiste_qui_papillonne|Utiliser GNU/Linux en ligne de commande, tout commence là !.]] :-) | ||
* Suivi : {{tag>en-chantier à-tester}} | * Suivi : {{tag>en-chantier à-tester}} | ||
Ligne 68: | Ligne 68: | ||
</code> | </code> | ||
- | Pour écrire un commentaire de fin de ligne, un caractère blanc((Les **blancs** sont les espaces et les tabulation.\\ Voir ''man bash'' section DÉFINITIONS.)) est obligatoire devant le caractère ''#'' pour que //bash// le reconnaisse comme caractère de commentarisation. | + | Pour écrire un commentaire de fin de ligne, un caractère blanc((Les **blancs** sont les espaces et les tabulation.\\ Voir ''man bash'' section DÉFINITIONS.)) est obligatoire devant le caractère ''#'' pour que //bash// le reconnaisse comme caractère marquant le début d’un commentaire. |
<code user> | <code user> | ||
Ligne 102: | Ligne 102: | ||
</code> | </code> | ||
- | Ou avec l'opérateur de redirection **''<nowiki><<</nowiki>''**((L'opérateur de redirection **''<nowiki><<</nowiki>''**, nommé **document en ligne** (//herdoc// en anglais), permet de rediriger l'entrée de l'interpréteur depuis la source actuelle (la ligne de commande ou depuis le script exécuté).\\ Voir ''nan bash'' section REDIRECTION > Document en ligne.)) | + | Ou avec l'opérateur de redirection **''<nowiki><<</nowiki>''**((L'opérateur de redirection **''<nowiki><<</nowiki>''**, nommé **document en ligne** (//herdoc// en anglais), permet de rediriger l'entrée de l'interpréteur depuis la source actuelle (la ligne de commande ou depuis le script exécuté).\\ Voir ''man bash'' section REDIRECTION > Document en ligne.)) |
<code> | <code> | ||
Ligne 125: | Ligne 125: | ||
Pourtant il y en a ! | Pourtant il y en a ! | ||
- | Mise à part que ces pseudos commentaires, | + | Mis à part que ces pseudos commentaires, |
* Ne sont pas reconnus comme commentaire, par la colorisation syntaxique et ne peuvent donc être colorisés comme le sont les commentaires. | * Ne sont pas reconnus comme commentaire, par la colorisation syntaxique et ne peuvent donc être colorisés comme le sont les commentaires. | ||
Ligne 165: | Ligne 165: | ||
Mais,\\ | Mais,\\ | ||
- | LOL C'est du "Cana... Dry" (ça en a l'apparence, ça en a le goût, mais s'en est pas). | + | LOL C'est du "Cana... Dry" (ça en a l'apparence, ça en a le goût, mais n'en est pas). |
Voyons cela en demandant l'affichage de notre fonction mémorisée par ''bash'' : | Voyons cela en demandant l'affichage de notre fonction mémorisée par ''bash'' : | ||
Ligne 215: | Ligne 215: | ||
shopt interactive_comments | shopt interactive_comments | ||
</code><code> | </code><code> | ||
- | restricted_shell off | + | interactive_comments off |
</code> | </code> | ||
Réactivons les commentaires : | Réactivons les commentaires : | ||
Ligne 224: | Ligne 224: | ||
---- | ---- | ||
- | Le caractère **''#''** n'est pas reconnu comme introduisant un commentaire lorsqu'il est protégé, que se soit par | + | Le caractère **''#''** n'est pas reconnu comme introduisant un commentaire lorsqu'il est protégé, que ce soit par |
* Le caractère de protection ''\'' (contre oblique) | * Le caractère de protection ''\'' (contre oblique) | ||
* Ou par l'encadrement entre guillemets (simples ou doubles) | * Ou par l'encadrement entre guillemets (simples ou doubles) | ||
- | Ou lorsque qu'il utilisé dans d'autres usages que //bash// lui attribut : | + | Ou lorsque qu'il est utilisé dans d'autres usages que //bash// lui attribue : |
* Dans le développement des paramètres, variables et tableaux : | * Dans le développement des paramètres, variables et tableaux : | ||
- | * Le paramètre spécial **$#** ou **${#}** : Retourne le nombre de paramètre positionnel. | + | * Le paramètre spécial **$#** ou **${#}** : Renvoie le nombre de paramètre positionnel. |
* **${p#motif}** ou **${p##motif}** : Supprime le préfixe ''motif'' du contenu du paramètre (ou de la variable) ''p'' | * **${p#motif}** ou **${p##motif}** : Supprime le préfixe ''motif'' du contenu du paramètre (ou de la variable) ''p'' | ||
- | * **${#var}** ou **${#tab[indice]}** : Retourne le nombre de caractère contenu dans la variable ''var'' ou de l'élément ''indice'' du tableau ''tab''. | + | * **${#var}** ou **${#tab[indice]}** : Renvoie le nombre de caractère contenu dans la variable ''var'' ou de l'élément ''indice'' du tableau ''tab''. |
- | * **${#tab[*]}** ou **${#tab[@]}** : Retourne le nombre d'éléments du tableau ''tab''. | + | * **${#tab[*]}** ou **${#tab[@]}** : Renvoie le nombre d'éléments du tableau ''tab''. |
* **${p/#motif/chaîne}** : Substitue ''motif'' par ''chaîne'' si ''motif'' se trouve au début du contenu de ''p''. | * **${p/#motif/chaîne}** : Substitue ''motif'' par ''chaîne'' si ''motif'' se trouve au début du contenu de ''p''. | ||
* Dans une évaluation arithmétique avec **base#n** où ''base'' indique la base numérique utilisée pour exprimer le nombre ''n''. | * Dans une évaluation arithmétique avec **base#n** où ''base'' indique la base numérique utilisée pour exprimer le nombre ''n''. | ||
Ligne 268: | Ligne 268: | ||
Expliquer des commandes complexes (dont la compréhension ne saute pas yeux).\\ | Expliquer des commandes complexes (dont la compréhension ne saute pas yeux).\\ | ||
Inhiber une partie du code sans devoir le supprimer.\\ | Inhiber une partie du code sans devoir le supprimer.\\ | ||
- | Laisser des annotation de développement.\\ | + | Laisser des annotations de développement.\\ |
Etc. | Etc. | ||
Quoi qu'il en soit, les commentaires doivent être précis et concis.\\ | Quoi qu'il en soit, les commentaires doivent être précis et concis.\\ | ||
- | Par exemple il est inutile de commenter une commande dont le nom est suffisant explicite.\\ | + | Par exemple il est inutile de commenter une commande dont le nom est suffisamment explicite.\\ |
Mais là encore c'est relatif, par exemple lors de l'écriture d'un script pédagogique.\\ | Mais là encore c'est relatif, par exemple lors de l'écriture d'un script pédagogique.\\ | ||
- | Et ils ne devraient pas être utilisés pour écrire de une documentation complète (il y a d'autre voix pour cela). | + | Et ils ne devraient pas être utilisés pour écrire une documentation complète (il y a d'autres voix pour cela). |
Sans oublier qu'ils doivent être compréhensibles par d'autres afin de partager son code.\\ | Sans oublier qu'ils doivent être compréhensibles par d'autres afin de partager son code.\\ | ||
Ligne 281: | Ligne 281: | ||
---- | ---- | ||
- | Le mécanisme de commentarisation de bash est très simple.\\ | + | Le mécanisme de commentarisation de //bash// est très simple.\\ |
Il utilise un seul caractère pour introduire (débuter) un commentaire, qui se poursuit jusqu’à la fin de ligne.\\ | Il utilise un seul caractère pour introduire (débuter) un commentaire, qui se poursuit jusqu’à la fin de ligne.\\ | ||
Ainsi nous pouvons commenter : | Ainsi nous pouvons commenter : | ||
Ligne 288: | Ligne 288: | ||
* Et à partir d'un certain endroit de la ligne, jusqu'à sa fin. | * Et à partir d'un certain endroit de la ligne, jusqu'à sa fin. | ||
- | Cela est largement suffisant rendant inutiles l'usage des pseudos alternatives.\\ | + | Cela est largement suffisant rendant inutile l'usage des pseudos alternatives.\\ |
Qui n'ont rien à voir avec les commentaires. | Qui n'ont rien à voir avec les commentaires. | ||
<note tip> | <note tip> | ||
- | Toutes fois, les pseudo alternatives décrites plus haut sont pratiques durant la phase de développement d'un script.\\ | + | Toutes fois,\\ |
+ | Les pseudos alternatives décrites plus haut sont pratiques durant la phase de développement d'un script.\\ | ||
Non pas pour réaliser des commentaires.\\ | Non pas pour réaliser des commentaires.\\ | ||
- | Mais dans le cas il est nécessaire d'inhiber un grand bloc de code.\\ | + | Mais dans le cas où il est nécessaire d'inhiber un grand bloc de code.\\ |
- | Évitant ainsi d'insérer devant chaque lignes à inhiber le caractère ''#'' (ce qui peut être fastidieux pour un grand nombre de lignes). | + | Évitant ainsi d'insérer devant chaque lignes à inhiber le caractère ''#''. |
</note> | </note> | ||
- | ---- | ||
- | |||
- | Voir aussi : [[doc:programmation:commenter|Commenter]] |