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 | ||
doc:programmation:shells:man-bash-vi-les-caracteres-de-transformation-de-parametres [07/10/2015 19:47] milou [Caractères et syntaxe de transformation de paramètres] |
doc:programmation:shells:man-bash-vi-les-caracteres-de-transformation-de-parametres [01/10/2023 11:37] (Version actuelle) captnfab |
||
---|---|---|---|
Ligne 14: | Ligne 14: | ||
* [[doc:programmation:shells:bash-les-differents-caracteres-speciaux|Vision d'ensemble]] | * [[doc:programmation:shells:bash-les-differents-caracteres-speciaux|Vision d'ensemble]] | ||
- | * [[docs:programmation:shells:la-page-man-bash-les-caracteres-speciaux|Détail et caractères]] | + | * [[doc:programmation:shells:la-page-man-bash-les-caracteres-speciaux|Détail et caractères]] |
* [[doc:programmation:shells:la-page-man-bash-ii-les-operateurs-lexicographiques|Les opérateurs lexicographiques]] | * [[doc:programmation:shells:la-page-man-bash-ii-les-operateurs-lexicographiques|Les opérateurs lexicographiques]] | ||
* [[doc:programmation:shells:page-man-bash-iii-les-operateurs-de-comparaison-numerique|Les opérateurs de comparaison numérique]] | * [[doc:programmation:shells:page-man-bash-iii-les-operateurs-de-comparaison-numerique|Les opérateurs de comparaison numérique]] | ||
Ligne 43: | Ligne 43: | ||
<note tip> | <note tip> | ||
Certaines substitutions de paramètre recoupent les fonctionnalités de la commande expr.\\ | Certaines substitutions de paramètre recoupent les fonctionnalités de la commande expr.\\ | ||
- | <code bash> | + | <code bash script> |
#!/bin/bash | #!/bin/bash | ||
#!/bin/bash | #!/bin/bash | ||
Ligne 58: | Ligne 58: | ||
</note> | </note> | ||
===Substitution de paramètres par référence indirecte=== | ===Substitution de paramètres par référence indirecte=== | ||
- | <code bash> | + | <code bash script> |
#!/bin/bash | #!/bin/bash | ||
set -o posix | set -o posix | ||
Ligne 72: | Ligne 72: | ||
===Substitution par modification=== | ===Substitution par modification=== | ||
- | <code bash> | + | <code bash script> |
#!/bin/bash | #!/bin/bash | ||
set -o posix | set -o posix | ||
Ligne 84: | Ligne 84: | ||
===Substitution d'un paramètre non-déclaré ou de valeur nulle=== | ===Substitution d'un paramètre non-déclaré ou de valeur nulle=== | ||
- | <code bash> | + | <code bash script> |
#!/bin/bash | #!/bin/bash | ||
set -o posix | set -o posix | ||
Ligne 98: | Ligne 98: | ||
===Attribution d'une valeur par défaut=== | ===Attribution d'une valeur par défaut=== | ||
- | <code bash> | + | <code bash script> |
#!/bin/bash | #!/bin/bash | ||
echo ${nom_utilasateur=`whoami`} # attribution d'une valeur par défaut, rien n'a été déclaré | echo ${nom_utilasateur=`whoami`} # attribution d'une valeur par défaut, rien n'a été déclaré | ||
Ligne 112: | Ligne 112: | ||
Attention : l'indice du premier caractère d'une chaîne de caractères est 0. | Attention : l'indice du premier caractère d'une chaîne de caractères est 0. | ||
</note> | </note> | ||
- | <code bash> | + | <code bash script> |
#!/bin/bash | #!/bin/bash | ||
echo "J'aime les chats" | echo "J'aime les chats" | ||
Ligne 126: | Ligne 126: | ||
===Extraction de sous-chaîne contenu dans la valeur de la variable ${paramètre:début:longueur}=== | ===Extraction de sous-chaîne contenu dans la valeur de la variable ${paramètre:début:longueur}=== | ||
- | <code bash> | + | <code bash script> |
#!/bin/bash | #!/bin/bash | ||
set -o posix | set -o posix | ||
Ligne 158: | Ligne 158: | ||
===Substitution de la valeur d'une variable (ou d'un paramètre) par la longueur de sa chaîne ${#paramètre}=== | ===Substitution de la valeur d'une variable (ou d'un paramètre) par la longueur de sa chaîne ${#paramètre}=== | ||
- | <code bash> | + | <code bash script> |
#!/bin/bash | #!/bin/bash | ||
set -o posix | set -o posix | ||
Ligne 172: | Ligne 172: | ||
===Suppression de la plus courte chaîne ${paramètre#modèle}=== | ===Suppression de la plus courte chaîne ${paramètre#modèle}=== | ||
- | <code bash> | + | <code bash script> |
#!/bin/bash | #!/bin/bash | ||
set -o posix | set -o posix | ||
Ligne 184: | Ligne 184: | ||
===Suppression de la plus longue chaîne $paramètre##modèle}=== | ===Suppression de la plus longue chaîne $paramètre##modèle}=== | ||
- | <code bash> | + | <code bash script> |
#!/bin/bash | #!/bin/bash | ||
set -o posix | set -o posix | ||
Ligne 196: | Ligne 196: | ||
===Modifier un paramètre en supprimant ses derniers caractères=== | ===Modifier un paramètre en supprimant ses derniers caractères=== | ||
- | <code bash> | + | <code bash script> |
#!/bin/bash | #!/bin/bash | ||
set -o posix | set -o posix | ||
Ligne 208: | Ligne 208: | ||
* Ou encore : | * Ou encore : | ||
- | <code bash> | + | <code bash script> |
#!/bin/bash | #!/bin/bash | ||
set -o posix | set -o posix | ||
Ligne 221: | Ligne 221: | ||
Toutes les occurrences du motif sont remplacées par la chaîne. | Toutes les occurrences du motif sont remplacées par la chaîne. | ||
- | <code bash> | + | <code bash script> |
#!/bin/bash | #!/bin/bash | ||
set -o posix | set -o posix | ||
Ligne 250: | Ligne 250: | ||
* Quand il s'agit de ne changer que la première occurrence, on peut choisir de changer la première ou la dernière : | * Quand il s'agit de ne changer que la première occurrence, on peut choisir de changer la première ou la dernière : | ||
- | <code bash> | + | <code bash script> |
#!/bin/bash | #!/bin/bash | ||
set -o posix | set -o posix | ||
Ligne 275: | Ligne 275: | ||
* Par exemple : | * Par exemple : | ||
- | <code bash> | + | <code bash script> |
#!/bin/bash | #!/bin/bash | ||
set -o posix | set -o posix | ||
Ligne 313: | Ligne 313: | ||
==== Utilisation du caractère génériques " ? ". ==== | ==== Utilisation du caractère génériques " ? ". ==== | ||
- | <code bash> | + | <code bash script> |
#!/bin/bash | #!/bin/bash | ||
var=debian123456facile | var=debian123456facile | ||
Ligne 331: | Ligne 331: | ||
</code> | </code> | ||
==== Utilisation du caractère générique "*". === | ==== Utilisation du caractère générique "*". === | ||
- | <code bash> | + | <code bash script> |
#!/bin/bash | #!/bin/bash | ||
set -o posix | set -o posix | ||
Ligne 365: | Ligne 365: | ||
====Utilisation des brackets [ - ] ==== | ====Utilisation des brackets [ - ] ==== | ||
- | <code bash> | + | <code bash script> |
#!/bin/bash | #!/bin/bash | ||
v=debian123456facile | v=debian123456facile | ||
Ligne 395: | Ligne 395: | ||
====Modifier la case : caractères {...^...}, {...^^...}, {...,...}, {...,,...}==== | ====Modifier la case : caractères {...^...}, {...^^...}, {...,...}, {...,,...}==== | ||
- | <code bash> | + | <code bash script> |
#!/bin/bash | #!/bin/bash | ||
var="je vais apprendre à utiliser le shell." | var="je vais apprendre à utiliser le shell." | ||
Ligne 417: | Ligne 417: | ||
</code> | </code> | ||
- | ====commande shopt -s extglob et braquet de classe [ [:class:] ]=== | + | ====commande shopt -s extglob et braquet de classe <nowiki>[ [:class:] ]</nowiki>=== |
<code>([[:lower:]])</code> | <code>([[:lower:]])</code> | ||
Elle désigne une suite de caractères minuscules : on peut retirer la première occurrence, ou toutes les occurrences à des caractères. | Elle désigne une suite de caractères minuscules : on peut retirer la première occurrence, ou toutes les occurrences à des caractères. | ||
- | <code bash> | + | <code bash script> |
#!/bin/bash | #!/bin/bash | ||
shopt -s extglob | shopt -s extglob | ||
Ligne 444: | Ligne 444: | ||
<code>([[:digit:]])</code> | <code>([[:digit:]])</code> | ||
Exemples | Exemples | ||
- | <code bash> | + | <code bash script> |
#!/bin/bash | #!/bin/bash | ||
shopt -s extglob | shopt -s extglob | ||
Ligne 463: | Ligne 463: | ||
</code> | </code> | ||
====Négation de caractères [^...] et [!...] ; extraction de symboles [.SYMBOL.]==== | ====Négation de caractères [^...] et [!...] ; extraction de symboles [.SYMBOL.]==== | ||
- | <code bash> | + | <code bash script> |
#!/bin/bash | #!/bin/bash | ||
shopt -s extglob | shopt -s extglob | ||
Ligne 500: | Ligne 500: | ||
- On peut utiliser les globs simples ( ''*'' , ''?'' , ''<nowiki>[ ]</nowiki>'' ) et les globs étendus : ''<nowiki>[ ]</nowiki>'', ''<nowiki>|</nowiki>'', ''?'', ''@'', ''!'', ''+'', '' ^ '' | - On peut utiliser les globs simples ( ''*'' , ''?'' , ''<nowiki>[ ]</nowiki>'' ) et les globs étendus : ''<nowiki>[ ]</nowiki>'', ''<nowiki>|</nowiki>'', ''?'', ''@'', ''!'', ''+'', '' ^ '' | ||
- | - Mais on ne peut pas utiliser les expressions régulières (où les globs étendus sont "ré-utilisés" avec une syntaxe différente, à côté d'autres caractères : la distinction entre globs étendus et //ER// est développée [[atelier:chantier:bash-vii-globs-etendus-regex|ici]] ).\\ | + | - Mais on ne peut pas utiliser les expressions régulières (où les globs étendus sont "ré-utilisés" avec une syntaxe différente, à côté d'autres caractères : la distinction entre globs étendus et //ER// est développée [[doc:programmation:shells:bash-vii-globs-etendus-regex|ici]] ).\\ |
À voir aussi : http://wiki.bash-hackers.org/syntax/pattern\\ | À voir aussi : http://wiki.bash-hackers.org/syntax/pattern\\ | ||
Ligne 509: | Ligne 509: | ||
Une liste plus complète ici : [[doc:programmation:shell:regexp#les-ensembles-de-caracteres-possibles]]\\ | Une liste plus complète ici : [[doc:programmation:shell:regexp#les-ensembles-de-caracteres-possibles]]\\ | ||
- | Voir le wiki suivant : [[atelier:chantier:bash-vii-globs-etendus-regex|globs étendus et expressions régulières]] | + | Voir le wiki suivant : [[doc:programmation:shells:bash-vii-globs-etendus-regex|globs étendus et expressions régulières]] |
* Pour les autres options de la commande interne shopt : | * Pour les autres options de la commande interne shopt : | ||
Ligne 519: | Ligne 519: | ||
=====tuto suivant : ===== | =====tuto suivant : ===== | ||
- | [[atelier:chantier:bash-vii-globs-etendus-regex|Bash : globs étendus et regex]] | + | [[doc:programmation:shells:bash-vii-globs-etendus-regex|Bash : globs étendus et regex]] |