Sekce standardů POSIX pro shelly IEEE Std 1003.1-2008 / IEEE POSIX P1003.2/ISO 9945.2 Standard Shell and Tools nedefinuje lexikální konvenci pro názvy proměnných, nicméně letmý pohled na zdroj odhalí, že používá něco podobného
[a-zA-Z_]+[a-zA-Z0-9_]*
(Upravit:Přidáno chybějící podtržítko ve 2. třídě znaků.)
Rychlá poznámka, protože některé shelly nepodporují + v regulárním výrazu, potenciálně přenosnější regulární výraz může být:
[a-zA-Z_]{1,}[a-zA-Z0-9_]{0,}
Z otevřené skupiny:
Tyto řetězce mají formname=hodnota; názvy nesmějí obsahovat znak '='. Aby hodnoty byly přenositelné napříč systémy vyhovujícími IEEE Std 1003.1-2001, musí se hodnota skládat ze znaků z přenosné znakové sady (kromě NULand, jak je uvedeno níže ).
Názvy tedy mohou obsahovat jakýkoli znak kromě =a NUL, ale:
Názvy proměnných prostředí používané nástroji ve svazku Shell and Utilities IEEE Std1003.1-2001 se skládají výhradně z velkých písmen, číslic a '_' (podtržítko) ze znaků definovaných v přenosné znakové sadě a nezačínají číslicí . Další znaky mohou být povoleny implementací; aplikace musí přítomnost takových jmen tolerovat.
Takže i když mohou být názvy platné, váš shell nemusí podporovat nic jiného než písmena, čísla a podtržítka.