GNU/Linux >> Linux Esercitazione >  >> Linux

Caratteri consentiti nei nomi delle variabili di ambiente Linux

La sezione standard POSIX sulle shell dello standard IEEE Std 1003.1-2008 / IEEE POSIX P1003.2/ISO 9945.2Shell and Tools non definisce la convenzione lessicale per i nomi delle variabili, tuttavia uno sguardo superficiale alla fonte rivela che utilizza qualcosa di simile a

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

(Modifica:aggiunto il trattino basso mancante nella seconda classe di caratteri.)

Una breve nota, dato che alcune shell non supportano il + in regex, una regex potenzialmente più portabile potrebbe essere:

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


Da The Open Group:

Queste stringhe hanno formname=value; i nomi non devono contenere il carattere '='. Affinché i valori possano essere portati su sistemi conformi aIEEE Std 1003.1-2001, il valore deve essere composto da caratteri del set di caratteri portabili (tranne NUL e come indicato di seguito ).

Quindi i nomi possono contenere qualsiasi carattere tranne =e NUL, ma:

I nomi delle variabili di ambiente utilizzati dalle utilità nel volume Shell andUtilities di IEEE Std1003.1-2001 sono costituiti esclusivamente da lettere maiuscole, cifre e '_' (trattino basso) dai caratteri definiti in Portable Character Set e non iniziano con una cifra . Altri caratteri possono essere consentiti da un'implementazione; le applicazioni devono tollerare la presenza di tali nomi.

Quindi, sebbene i nomi possano essere validi, la tua shell potrebbe non supportare nient'altro oltre a lettere, numeri e caratteri di sottolineatura.


Linux
  1. Suggerimenti/trucchi per la navigazione della riga di comando di Linux 3 - la variabile d'ambiente CDPATH

  2. Suggerimenti e trucchi per le variabili di ambiente Linux

  3. Linux:variabile d'ambiente permanente per tutti gli utenti?

  4. C# in ambiente Linux

  5. Come impostare a livello di codice una variabile di ambiente permanente in Linux?

Comando Tr in Linux con esempi

Come impostare/disimpostare le variabili d'ambiente in Linux

Come impostare la variabile d'ambiente in Bash

Variabili d'ambiente Linux

Caratteri consentiti nei nomi delle interfacce di rete Linux?

Linux/Windows/Unix/... nomi di file:quali caratteri sono consentiti? Quali sono senza escape?