Différences
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 | ||
info:bash:variables_chaine_de_caracteres [2022/12/17 14:08] – [retourner une chaîne si une variable est non nulle] franck | info:bash:variables_chaine_de_caracteres [2023/04/04 19:34] (Version actuelle) – franck | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
======Variables chaîne de caractères====== | ======Variables chaîne de caractères====== | ||
+ | |||
+ | ======Retour a la ligne dans une variable====== | ||
+ | [[https:// | ||
+ | l' | ||
+ | \\ | ||
+ | [[https:// | ||
+ | l' | ||
+ | <code bash> | ||
+ | TOTO=$" | ||
+ | echo -e $TOTO | ||
+ | </ | ||
+ | <code bash> | ||
+ | ligne1 | ||
+ | ligne2 | ||
+ | ligne3 | ||
+ | </ | ||
+ | |||
+ | <code bash> | ||
+ | TOTO=' | ||
+ | ligne2 | ||
+ | ligne3' | ||
+ | echo ${TOTO%%$' | ||
+ | </ | ||
+ | <code bash> | ||
+ | <code bash> | ||
+ | TOTO=$" | ||
+ | </ | ||
+ | <code bash> | ||
+ | echo ${TOTO%%$" | ||
+ | </ | ||
+ | <code bash> | ||
=====Récupérer uniquement le nom du répertoire courant sans le chemin absolu===== | =====Récupérer uniquement le nom du répertoire courant sans le chemin absolu===== | ||
Ligne 209: | Ligne 240: | ||
=====Renvoyer une chaîne lorsque la variable est non définie===== | =====Renvoyer une chaîne lorsque la variable est non définie===== | ||
+ | Cette syntaxe ne défini pas ou ne modifie pas la valeur de VAR.\\ | ||
si VAR est défini (avec une valeur ou avec nulle), on retourne sa valeur, y compris nulle, sinon, si VAR est indéfini, on retourne la chaîne choisi, ici " | si VAR est défini (avec une valeur ou avec nulle), on retourne sa valeur, y compris nulle, sinon, si VAR est indéfini, on retourne la chaîne choisi, ici " | ||
<code bash> | <code bash> | ||
Ligne 234: | Ligne 265: | ||
<code bash> | <code bash> | ||
valeur_par_defaut | valeur_par_defaut | ||
- | </ | ||
- | =====Retourner une valeur si la variable est non définie===== | ||
- | Cette syntaxe ne défini pas ou ne modifie pas la valeur de VAR.\\ | ||
- | Pour substituer une valeur (ici une chaîne: défaut) a une variable indéfinie uniquement. Il n'y a pas de substitution si la chaîne est vide.\\ | ||
- | <code bash> | ||
- | unset VAR | ||
- | echo ${VAR-defaut} | ||
- | </ | ||
- | <code bash> | ||
- | defaut | ||
- | </ | ||
- | <code bash> | ||
- | declare VAR | ||
- | echo ${VAR-defaut} | ||
- | </ | ||
- | <code bash> | ||
- | # vide | ||
</ | </ | ||
- | |||
- | |||
- | |||
- | <code bash> | ||
- | ${VAR: | ||
- | </ | ||
- | \\ | ||
=====Définir une variable uniquement si elle est indéfinie===== | =====Définir une variable uniquement si elle est indéfinie===== | ||
Ligne 284: | Ligne 291: | ||
\\ | \\ | ||
- | =====retourner une chaîne si une variable est non nulle===== | + | =====retourner une chaîne si une variable est définie===== |
+ | <code bash> | ||
+ | unset VAR | ||
+ | echo echo ${VAR+autre_valeur} | ||
+ | </ | ||
+ | résultat: | ||
+ | <code bash> | ||
+ | # vide | ||
+ | </ | ||
<code bash> | <code bash> | ||
VAR=valeur_1 | VAR=valeur_1 | ||
echo ${VAR+autre_valeur} | echo ${VAR+autre_valeur} | ||
+ | </ | ||
+ | résultat: | ||
+ | <code bash> | ||
autre_valeur | autre_valeur | ||
- | VAR= # | + | </ |
+ | <code bash> | ||
+ | VAR= # | ||
echo ${VAR+autre_valeur} | echo ${VAR+autre_valeur} | ||
+ | </ | ||
+ | resultat: | ||
+ | <code bash> | ||
autre_valeur | autre_valeur | ||
+ | </ | ||
+ | =====retourner une chaîne si une variable est non vide===== | ||
+ | <code bash> | ||
+ | VAR= | ||
echo ${VAR: | echo ${VAR: | ||
+ | </ | ||
+ | resultat: | ||
+ | <code bash> | ||
# vide | # vide | ||
+ | </ | ||
+ | <code bash> | ||
+ | VAR=TOTO | ||
+ | echo ${VAR: | ||
+ | </ | ||
+ | resultat: | ||
+ | <code bash> | ||
+ | TOTO | ||
</ | </ | ||
=====message d' | =====message d' | ||
+ | le message est renvoyé sur la sortie d' | ||
<code bash> | <code bash> | ||
- | unset TOTO # | + | unset TOTO # |
echo ${TOTO?pas définie} | echo ${TOTO?pas définie} | ||
-bash: TOTO: pas définie # message sur stderr | -bash: TOTO: pas définie # message sur stderr | ||
- | TOTO= # | + | echo $? |
+ | 1 | ||
+ | TOTO= # | ||
echo ${TOTO?pas definie} | echo ${TOTO?pas definie} | ||
# vide, valeur nulle autorisée | # vide, valeur nulle autorisée | ||
+ | echo $? | ||
+ | 0 | ||
</ | </ | ||
=====message d' | =====message d' | ||
Ligne 359: | Ligne 402: | ||
si le 1e caractère est déjà en majuscule, pas de modification. | si le 1e caractère est déjà en majuscule, pas de modification. | ||
- | =====Premier caractère en minuscule, et ne modifie pas les autres===== | + | =====Premier caractère en minuscule===== |
<code bash> | <code bash> | ||
x=" | x=" |