info:bash:variables_chaine_de_caracteres

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
info:bash:variables_chaine_de_caracteres [2022/12/17 14:22] – [message d'erreur si une variable est indéfini] franckinfo: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://www.gnu.org/software/bash/manual/html_node/ANSI_002dC-Quoting.html]] \\
 +l'expression **$'** devant une chaîne permet d'y insérer des caractères d'échappements en les précédents de **\**.
 +\\
 +[[https://www.gnu.org/software/bash/manual/html_node/Locale-Translation.html]] \\
 +l'expression **$"** devant une chaîne convertira les caractères dans leurs forme locale.
 +<code bash>
 +TOTO=$"ligne1\nligne2\nligne3\n"
 +echo -e $TOTO
 +</code>
 +<code bash>
 +ligne1
 +ligne2
 +ligne3
 +</code>
 +
 +<code bash>
 +TOTO='ligne1
 +ligne2
 +ligne3'
 +echo ${TOTO%%$'\n'*} 
 +</code>
 +<code bash>ligne1</code>
 +<code bash>
 +TOTO=$"ligne1\nligne2\nligne3\n"
 +</code>
 +<code bash>
 +echo ${TOTO%%$"\n"*} 
 +</code>
 +<code bash>ligne1</code>
  
 =====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 "défaut", sans définir la variable\\ 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 "défaut", sans définir la variable\\
 <code bash> <code bash>
Ligne 234: Ligne 265:
 <code bash> <code bash>
 valeur_par_defaut valeur_par_defaut
-</code> 
-=====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> 
-<code bash> 
-defaut 
-</code> 
-<code bash> 
-declare VAR 
-echo ${VAR-defaut} 
-</code> 
-<code bash> 
-   # vide 
 </code> </code>
- 
- 
- 
-<code bash> 
-${VAR:-defaut} 
-</code> 
-\\ 
  
 =====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} 
 +</code> 
 +résultat: 
 +<code bash> 
 +# vide 
 +</code>
 <code bash> <code bash>
 VAR=valeur_1 VAR=valeur_1
 echo ${VAR+autre_valeur} echo ${VAR+autre_valeur}
 +</code>
 +résultat:
 +<code bash>
 autre_valeur autre_valeur
-VAR= # nulle+</code> 
 +<code bash> 
 +VAR= # vide
 echo ${VAR+autre_valeur}  echo ${VAR+autre_valeur}
 +</code>
 +resultat:
 +<code bash>
 autre_valeur autre_valeur
 +</code>
 +=====retourner une chaîne si une variable est non vide=====
 +<code bash>
 +VAR=
 echo ${VAR:+autre_valeur}  echo ${VAR:+autre_valeur}
 +</code>
 +resultat:
 +<code bash>
    # vide    # vide
 +</code>
 +<code bash>
 +VAR=TOTO
 +echo ${VAR:+autre_valeur}
 +</code>
 +resultat:
 +<code bash>
 +TOTO
 </code> </code>
 =====message d'erreur si une variable est indéfini===== =====message d'erreur si une variable est indéfini=====
-le message est renvoyé sur la sortie d'erreurs stderr avec un code retour 1.+le message est renvoyé sur la sortie d'erreurs standard **stderr** avec un **code retour 1**.
 <code bash> <code bash>
-unset TOTO # VAR n'est pas définie+unset TOTO # TOTO n'est pas définie
 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
 echo $? echo $?
 1 1
-TOTO=                           # Var est définie mais vide = nulle+TOTO=                           # TOTO est définie mais vide = nulle
 echo ${TOTO?pas definie}  echo ${TOTO?pas definie}
    # vide, valeur nulle autorisée    # vide, valeur nulle autorisée
Ligne 364: 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="ToTo est Dans lA cUisInE" x="ToTo est Dans lA cUisInE"
  • /home/franck/dokuwiki/doc/data/attic/info/bash/variables_chaine_de_caracteres.1671283361.txt.gz
  • Dernière modification : 2022/12/17 14:22
  • de franck