Warning: preg_match(): Compilation failed: group name must start with a non-digit at offset 8 in /sdb/e/8/system.co/includes/MagicWord.php on line 722

Warning: preg_match(): Compilation failed: group name must start with a non-digit at offset 8 in /sdb/e/8/system.co/includes/MagicWord.php on line 722

Warning: preg_match_all(): Compilation failed: group name must start with a non-digit at offset 4 in /sdb/e/8/system.co/includes/MagicWord.php on line 700

Warning: Invalid argument supplied for foreach() in /sdb/e/8/system.co/includes/MagicWord.php on line 701

Warning: preg_replace(): Compilation failed: group name must start with a non-digit at offset 4 in /sdb/e/8/system.co/includes/MagicWord.php on line 705

Warning: preg_match_all(): Compilation failed: group name must start with a non-digit at offset 4 in /sdb/e/8/system.co/includes/MagicWord.php on line 700

Warning: Invalid argument supplied for foreach() in /sdb/e/8/system.co/includes/MagicWord.php on line 701

Warning: preg_replace(): Compilation failed: group name must start with a non-digit at offset 4 in /sdb/e/8/system.co/includes/MagicWord.php on line 705

Warning: preg_match(): Compilation failed: group name must start with a non-digit at offset 8 in /sdb/e/8/system.co/includes/MagicWord.php on line 722

Warning: preg_match_all(): Compilation failed: group name must start with a non-digit at offset 4 in /sdb/e/8/system.co/includes/MagicWord.php on line 700

Warning: Invalid argument supplied for foreach() in /sdb/e/8/system.co/includes/MagicWord.php on line 701

Warning: preg_replace(): Compilation failed: group name must start with a non-digit at offset 4 in /sdb/e/8/system.co/includes/MagicWord.php on line 705

Warning: preg_match_all(): Compilation failed: group name must start with a non-digit at offset 4 in /sdb/e/8/system.co/includes/MagicWord.php on line 700

Warning: Invalid argument supplied for foreach() in /sdb/e/8/system.co/includes/MagicWord.php on line 701

Warning: preg_replace(): Compilation failed: group name must start with a non-digit at offset 4 in /sdb/e/8/system.co/includes/MagicWord.php on line 705

Warning: preg_match_all(): Compilation failed: group name must start with a non-digit at offset 4 in /sdb/e/8/system.co/includes/MagicWord.php on line 700

Warning: Invalid argument supplied for foreach() in /sdb/e/8/system.co/includes/MagicWord.php on line 701

Warning: preg_replace(): Compilation failed: group name must start with a non-digit at offset 4 in /sdb/e/8/system.co/includes/MagicWord.php on line 705

Warning: preg_match_all(): Compilation failed: group name must start with a non-digit at offset 4 in /sdb/e/8/system.co/includes/MagicWord.php on line 700

Warning: Invalid argument supplied for foreach() in /sdb/e/8/system.co/includes/MagicWord.php on line 701

Warning: preg_replace(): Compilation failed: group name must start with a non-digit at offset 4 in /sdb/e/8/system.co/includes/MagicWord.php on line 705

Warning: preg_match(): Compilation failed: group name must start with a non-digit at offset 8 in /sdb/e/8/system.co/includes/MagicWord.php on line 722

Warning: preg_match(): Compilation failed: group name must start with a non-digit at offset 8 in /sdb/e/8/system.co/includes/MagicWord.php on line 722

Warning: preg_match(): Compilation failed: group name must start with a non-digit at offset 8 in /sdb/e/8/system.co/includes/MagicWord.php on line 722

Warning: preg_match(): Compilation failed: group name must start with a non-digit at offset 8 in /sdb/e/8/system.co/includes/MagicWord.php on line 722

Warning: preg_match_all(): Compilation failed: group name must start with a non-digit at offset 4 in /sdb/e/8/system.co/includes/MagicWord.php on line 700

Warning: Invalid argument supplied for foreach() in /sdb/e/8/system.co/includes/MagicWord.php on line 701

Warning: preg_replace(): Compilation failed: group name must start with a non-digit at offset 4 in /sdb/e/8/system.co/includes/MagicWord.php on line 705

Warning: preg_match_all(): Compilation failed: group name must start with a non-digit at offset 4 in /sdb/e/8/system.co/includes/MagicWord.php on line 700

Warning: Invalid argument supplied for foreach() in /sdb/e/8/system.co/includes/MagicWord.php on line 701

Warning: preg_replace(): Compilation failed: group name must start with a non-digit at offset 4 in /sdb/e/8/system.co/includes/MagicWord.php on line 705

Warning: preg_match(): Compilation failed: group name must start with a non-digit at offset 8 in /sdb/e/8/system.co/includes/MagicWord.php on line 722

Warning: preg_match(): Compilation failed: group name must start with a non-digit at offset 8 in /sdb/e/8/system.co/includes/MagicWord.php on line 722
Variables bash - system.co.free.fr

Variables bash

De system.co.free.fr.
(chercher et remplacer une sous-chaîne en fin de variable)
(Définir une variable uniquement si elle est indéfinie ou nul)
 
Ligne 111 : Ligne 111 :
<br>
<br>
[AB] signifie le caractère A ou le caractère B<br>
[AB] signifie le caractère A ou le caractère B<br>
-
[AB[AB][AB][AB] signifie 4 caractères ( ou A ou B) qui se suivent
+
[AB[AB][AB][AB] signifie 4 caractères ( A ou B) qui se suivent
<br>
<br>
<pre>
<pre>
Ligne 171 : Ligne 171 :
</pre>
</pre>
-
===chercher et remplacer la première sous-chaîne de variable===  
+
===chercher et remplacer la première sous-chaîne d'une variable===  
<pre>
<pre>
VAR=abcABC123ABCabc
VAR=abcABC123ABCabc
Ligne 189 : Ligne 189 :
</pre>
</pre>
 +
==Renvoyer une valeur de substitution lorsque la variable n'existe pas==
-
Pour les cas où les variables doivent être étroitement surveillées, on dispose de quelques outils permettant par exemple de leur donner une valeur par défaut, ou de retourner une erreur quand elles ne sont pas définies.
+
si VAR est défini (avec une valeur ou avec nul), on retourne sa valeur, y compris nul, sinon, si VAR est indéfini, on retourne défaut, sans changer ni la valeur, ni l’état de VAR.  
 +
<pre>
 +
unset VAR                # on supprime VAR si elle existe
 +
echo ${VAR-defaut}
 +
</pre>
 +
<pre>
 +
defaut
 +
</pre>
-
On sait déjà que la forme ${VAR} retourne la valeur de VAR. Mettons maintenant qu'on veuille utiliser une valeur par défaut quand la valeur de VAR n'est pas définie. On peut écrire : ${VAR-defaut}. dans ce cas, si VAR existe (nulle ou pas), on retourne sa valeur, sinon, on retourne la valeur defaut, sans changer la valeur de VAR.
+
Si l'on souhaite que la valeur retournée soit non nul, on peut utiliser la syntaxe : <b>${VAR:-defaut}</b>.
-
 
+
-
Si on veut que la valeur retournée soit non nulle, on peut utiliser la syntaxe : ${VAR:-defaut}.
+
Par exemple :
Par exemple :
 +
<pre>
 +
declare VAR # VAR existe, mais est nul
 +
echo ${VAR-valeur_par_defaut}
 +
</pre>
 +
<pre>
-
declare VAR # VAR existe, mais est nulle
+
</pre>
-
echo ${VAR-valeur_par_defaut} # rien
+
<pre>
-
echo ${VAR:-valeur_par_defaut} # valeur_par_defaut
+
echo ${VAR:-valeur_par_defaut}
 +
</pre>
 +
<pre>
 +
valeur_par_defaut
 +
</pre>
-
unset VAR # VAR n'est plus définie
 
-
echo ${VAR-valeur_par_defaut} # valeur_par_defaut
 
-
echo ${VAR:-valeur_par_defaut} # valeur_par_defaut
 
-
Donc, si null est une valeur possible pour une variable, il convient d'utiliser la syntaxe ${VAR-defaut} qui respectera la valeur nulle. Sinon, il est plus sage d'utiliser ${VAR:-defaut}.
 
-
Il faut bien ce souvenir que cette syntaxe ne défini à aucun moment la valeur de VAR. C'est le rôle de la syntaxe ci dessous de définir VAR si elle n'est pas définie :
+
Pour substituer une valeur (ici une chaîne: defaut) a une variable indéfinie:<br>
 +
<pre>
 +
${VAR-defaut}
 +
</pre>
 +
<br>
 +
Pour substituer une valeur (ici une chaîne: defaut) a une variable indéfinie ou nul: <br>
 +
<pre>
 +
${VAR:-defaut}
 +
</pre>
 +
<br>
 +
Cette syntaxe ne défini pas ou ne modifie pas la valeur de VAR.
-
declare VAR # VAR existe, mais est nulle
+
==Définir une variable uniquement si elle est indéfinie==
-
echo ${VAR=valeur_par_defaut} # rien, VAR reste nulle
+
définir VAR si elle n'est pas définie :<br>
-
echo ${VAR:=valeur_par_defaut} # VAR prend la valeur
+
<pre>
-
# valeur_par_defaut
+
unset VAR # VAR n'est pas défini
 +
echo ${VAR=valeur_par_defaut}
 +
</pre>
 +
<pre>
 +
valeur_par_defaut
 +
</pre>
 +
<br>
 +
==Définir une variable uniquement si elle est indéfinie ou nul==
 +
définir VAR lorsque nul :<br>
 +
<pre>
 +
VAR=               # défini VAR a nul
 +
echo ${VAR:=valeur_par_defaut}
 +
</pre>
 +
<pre>
 +
valeur_par_defaut
 +
</pre>
 +
<br>
-
Si on veut maintenant utiliser une autre valeur, fixe, quand VAR est définie, sans pour autant modifier la valeur réelle de VAR, on peut procéder comme cela :
+
==remplacer momentanément la valeur d'une variable non nul==
VAR=valeur_1
VAR=valeur_1

Version actuelle en date du 8 novembre 2020 à 08:15

Outils personnels