GNU/Linux >> Tutoriels Linux >  >> Linux

Caractères autorisés dans les noms de variables d'environnement Linux

La section Normes POSIX sur les shells de la norme IEEE Std 1003.1-2008 / IEEE POSIX P1003.2/ISO 9945.2Shell and Tools ne définit pas la convention lexicale pour les noms de variables, mais un coup d'œil rapide à la source révèle qu'elle utilise quelque chose de similaire à

[a-zA-Z_]+[a-zA-Z0-9_]*

(Edit :ajout d'un trait de soulignement manquant dans la 2e classe de caractères.)

Une note rapide, comme certains shells ne prennent pas en charge le + dans regex, une regex potentiellement plus portable peut être :

[a-zA-Z_]{1,}[a-zA-Z0-9_]{0,}


Du groupe ouvert :

Ces chaînes ont le formname=value; les noms ne doivent pas contenir le caractère '='. Pour que les valeurs soient transférables sur des systèmes conformes à la norme IEEE 1003.1-2001, la valeur doit être composée de caractères du jeu de caractères portable (sauf NULet comme indiqué ci-dessous ).

Ainsi, les noms peuvent contenir n'importe quel caractère sauf =et NUL, mais :

Les noms de variables d'environnement utilisés par les utilitaires dans le volume Shell andUtilities de IEEE Std1003.1-2001 se composent uniquement de lettres majuscules, de chiffres et du '_'(trait de soulignement) à partir des caractères définis dans Portable Character Set et ne commencent pas par un chiffre . D'autres caractères peuvent être autorisés par une implémentation ; les applications doivent tolérer la présence de tels noms.

Ainsi, bien que les noms soient valides, votre shell peut ne rien prendre en charge à part les lettres, les chiffres et les traits de soulignement.


Linux
  1. Trucs et astuces pour les variables d'environnement Linux

  2. Exemples de commandes d'exportation Linux (Comment définir des variables d'environnement)

  3. C# dans un environnement Linux

  4. Quels caractères sont interdits dans les noms de répertoires Windows et Linux ?

  5. Comment définir par programme une variable d'environnement permanente sous Linux ?

Commande Tr sous Linux avec des exemples

Comment définir/annuler les variables d'environnement sous Linux

Comment définir une variable d'environnement dans Bash

Variables d'environnement Linux

Caractères autorisés dans les noms d'interface réseau Linux ?

Noms de fichiers Linux/Windows/Unix/... :Quels caractères sont autorisés ? Quels sont les non échappés ?