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 Prochaine révision Les deux révisions suivantes | ||
doc:programmation:shells:bash-les-differents-caracteres-speciaux [08/07/2014 15:19] Hypathie [Shell BASH] |
doc:programmation:shells:bash-les-differents-caracteres-speciaux [09/07/2014 17:39] Hypathie [Métacaractères et méta-caractères !] |
||
---|---|---|---|
Ligne 14: | Ligne 14: | ||
> [[user>Hypathie]] | > [[user>Hypathie]] | ||
+ | * ;-) | ||
* [[atelier:chantier:la-page-man-bash-les-caracteres-speciaux|Détail et caractères]] | * [[atelier:chantier:la-page-man-bash-les-caracteres-speciaux|Détail et caractères]] | ||
* [[atelier:chantier:la-page-man-bash-ii-les-operateurs-lexicographiques|Les opérateurs lexicographiques]] | * [[atelier:chantier:la-page-man-bash-ii-les-operateurs-lexicographiques|Les opérateurs lexicographiques]] | ||
Ligne 135: | Ligne 136: | ||
<code user>type sleep</code> | <code user>type sleep</code> | ||
<code>sleep est /bin/sleep</code> | <code>sleep est /bin/sleep</code> | ||
- | //''/bin/commande'' signifie donc que c'est une commande externe.// | + | >''/bin/commande'' signifie donc que c'est une commande externe. |
<code user>type ls</code> | <code user>type ls</code> | ||
Ligne 145: | Ligne 146: | ||
<code user>which ls</code> | <code user>which ls</code> | ||
<code>/bin/ls</code> | <code>/bin/ls</code> | ||
- | //''ls'' est donc l'alias de la commande externe ''/bin/ls''// | + | >''ls'' est donc l'alias de la commande externe ''/bin/ls'' |
</note> | </note> | ||
Ligne 291: | Ligne 292: | ||
À ne pas lancer dans votre dossier personnel sous peine perdre de manière irrémédiable de tous vos fichiers ! | À ne pas lancer dans votre dossier personnel sous peine perdre de manière irrémédiable de tous vos fichiers ! | ||
</note> | </note> | ||
- | >Pour vérifier que tout a été supprimé : | ||
<code user>ls</code> | <code user>ls</code> | ||
+ | |||
+ | > Pour vérifier que tout a été supprimé : | ||
* comparez maintenant avec : | * comparez maintenant avec : | ||
Ligne 303: | Ligne 305: | ||
<code user>ls | xargs rm | <code user>ls | xargs rm | ||
</code> | </code> | ||
- | >Pour vérifier que tout a été supprimé : | + | |
<code user>ls</code> | <code user>ls</code> | ||
+ | |||
+ | > Pour vérifier que tout a été supprimé : | ||
* Autre exemple : | * Autre exemple : | ||
Ligne 531: | Ligne 535: | ||
<note tip> En bref !!! | <note tip> En bref !!! | ||
- | * Les caractères servant au globbing et au perttern, sont désignés dans le man bash de caractères génériques.\\ Mais à l'usage on parle de métacaractères. | + | * Les caractères servant __au globbing et au patterns__, sont désignés dans le man bash de caractères génériques.\\ Mais à l'usage on parle de __métacaractères__. |
- | * Les caractères qui permettent le mécanisme de lecture d'une ligne de commande par le shell sont appelés dans le man bash méta-caractères.\\ Mais à l'usage on parle de mots réservés. | + | * Les caractères qui permettent le mécanisme de lecture d'une ligne de commande par le shell sont appelés dans le man bash méta-caractères.\\ Mais à l'usage on parle __de mots réservés__. |
* On distingue deux sortes de mots réservés : les opérateurs de contrôle et les opérateurs de redirection. | * On distingue deux sortes de mots réservés : les opérateurs de contrôle et les opérateurs de redirection. | ||
Ligne 539: | Ligne 543: | ||
==== Les opérateurs de contrôle ==== | ==== Les opérateurs de contrôle ==== | ||
- | + | ||
- | <code> | + | ===Parmi tous les opérateurs de contrôle ci-dessous :=== |
+ | <code text man bash> | ||
|| && ; & ;; ( ) | <retour-chariot> | || && ; & ;; ( ) | <retour-chariot> | ||
</code> | </code> | ||
+ | |||
+ | ===Il faut premièrement distinguer ceux qui servent à enchaîner les commandes :=== | ||
+ | |||
+ | '' || && ; <retour-chariot> '' | ||
+ | |||
+ | Voir : | ||
+ | * [[doc:programmation:shell:shell|Le shell pour tous]] | ||
+ | * [[doc:programmation:shell:shell#enchainer-plusieurs-commandes]] | ||
+ | * [[atelier:chantier:script-bash-enchainement-de-commandes-et-etat-de-sortie#enchainements-de-commandes-dans-les-scripts|Enchaînements de commandes dans les scripts]] | ||
+ | * [[atelier:chantier:script-bash-etat-de-sorie-et-les-tests?&#l-enchainement-conditionnel-est-fonde-sur-le-code-de-retour|l'enchaînement conditionnel]] | ||
+ | |||
+ | ===Remarques === | ||
<note tip> | <note tip> | ||
- | Premièrement, à strictement parler, parmi les caractères de la liste ci-dessus, ceux qui servent à enchaîner les commandes sont : | + | Quant aux autres : '' & ;; ( ) | '' |
- | <code> || && ; <retour-chariot> </code> | + | * Le signe ''|'' est un "ou" logique. |
- | > Le signe ''|'' est un "ou" logique. | ||
> Il ne fait pas référence ici au pipe qui sert dans les tubes. | > Il ne fait pas référence ici au pipe qui sert dans les tubes. | ||
- | > Ce "ou" logique qui apparaît dans deux cas : | + | > Ce "ou" logique apparaît dans deux cas : |
- | + | ||
- | * avec '';;'' dans le contexte de la commande ''case'' | + | |
- | <code bash> | + | |
- | case $variable-name in | + | |
- | pattern1|pattern2|pattern3 | + | |
- | # ^ ^ | + | |
- | # ou ou | + | |
- | command1 | + | |
- | ... | + | |
- | commandN | + | |
- | *) | + | |
- | esac | + | |
- | </code> | + | |
- | * dans le contexte d'utilisation des globs étendus et des expressions rationnelles\\ voir : [[atelier:chantier:bash-vii-globs-etendus-regex?&#les-globs-etendus]]\\ Par exemple : <code user>ls ~/Test/!(*jpg|*bmp)</code> | + | |
- | Deuxièmement, on retrouve la paire de parenthèses simples ''( )'': | + | * le ''|'' dans le contexte d'utilisation des globs étendus et des expressions rationnelles\\ voir : [[atelier:chantier:bash-vii-globs-etendus-regex?&#les-globs-etendus]]\\ Par exemple : <code user>ls ~/Test/!(*jpg|*bmp)</code> |
- | + | * Le ''|'' avec les '';;'' dans contexte de la commande ''case'' | |
- | > Avec la commande ''function'' | + | <code> |
+ | case chaîne in | ||
+ | choix1 ) commande ;; | ||
+ | choix2 | choix3 ...) commande ;; | ||
+ | # ^ | ||
+ | ... | ||
+ | * ) commande ... ;; | ||
+ | esac | ||
+ | </code> | ||
+ | * On retrouve la paire de parenthèses simples ''( )'': | ||
+ | * Avec la commande ''function'' | ||
<code bash> | <code bash> | ||
Ligne 579: | Ligne 591: | ||
</code> | </code> | ||
- | > Avec les substitutions de commande ''$( )'' | + | * Avec les substitutions de commande ''$( )'' |
- | + | * Avec les globs étendus (voir lien ci-dessus) ;\\ | |
- | > Avec les globs étendus (voir lien ci-dessus) ;\\ | + | |
ou dans les expressions rationnelle (voir : [[atelier:chantier:bash-vii-globs-etendus-regex?&#liste-des-caracteres-utilises-dans-les-expressions-regulieres-de-type-bashiste]]\\ | ou dans les expressions rationnelle (voir : [[atelier:chantier:bash-vii-globs-etendus-regex?&#liste-des-caracteres-utilises-dans-les-expressions-regulieres-de-type-bashiste]]\\ | ||
- | > Ne pas confondre avec la double paire de parenthèse ''<nowiki>(( ))</nowiki>'' qui ne figure pas\\ dans la liste et qui sert à faire des calculs\\ (voir : [[atelier:chantier:page-man-bash-iv-symboles-dans-les-calculs-mathematiques]]. | + | > Et à pas confondre avec la double paire de parenthèse ''<nowiki>(( ))</nowiki>'' qui ne figure pas\\ dans la liste et qui sert à faire des calculs\\ (voir : [[atelier:chantier:page-man-bash-iv-symboles-dans-les-calculs-mathematiques]]. |
</note> | </note> | ||
- | À voir : [[doc:programmation:shell:shell#enchainer-plusieurs-commandes]] | + | |
==== Les opérateurs de redirection ==== | ==== Les opérateurs de redirection ==== | ||
Ligne 612: | Ligne 624: | ||
<note> | <note> | ||
- | Enfin, ne sont pas désignés de méta-caractères :\\ | + | Enfin, ne sont pas désignés de méta-caractères, ni d'opérateurs de contrôle :\\ |
Tous les caractères spéciaux, c'est-à-dire les symboles auxquels le shell est sensible.\\ | Tous les caractères spéciaux, c'est-à-dire les symboles auxquels le shell est sensible.\\ | ||
Comme nous le verrons dans cette série de wiki, il s'agit : | Comme nous le verrons dans cette série de wiki, il s'agit : | ||
Ligne 635: | Ligne 647: | ||
* **Pour les DÉBUTANTS AVISÉS et anglophile, voir là :[[http://mywiki.wooledge.org/BashFAQ]]** | * **Pour les DÉBUTANTS AVISÉS et anglophile, voir là :[[http://mywiki.wooledge.org/BashFAQ]]** | ||
- | * **À voir aussi : scripts debian-facile :** | + | * **À voir aussi : les scripts debian-facile :** |
*[[:doc:programmation:python:boutonfermer|[pygtk] Comment faire un notebook avec bouton "fermer"]] | *[[:doc:programmation:python:boutonfermer|[pygtk] Comment faire un notebook avec bouton "fermer"]] | ||
*[[:doc:programmation:bash:alias|[bash] Réalisation d'un script contenant des Alias]] | *[[:doc:programmation:bash:alias|[bash] Réalisation d'un script contenant des Alias]] |