Nunca he conocido un shell de estilo Bourne que permita -
un nombre variable. Solo _
se admiten letras ASCII (de cualquier caso) y dígitos, y el primer carácter no debe ser un dígito.
Si tiene un programa que requiere una variable de entorno que no coincide con las restricciones de shell, ejecútelo con el env
programa.
env 'strange-name=some value' myprogram
Tenga en cuenta que algunos shells (por ejemplo , guiones modernos , mksh, zsh) eliminan del entorno las variables cuyo nombre no les gusta. ( Shellshock ha provocado que las personas sean más cautelosas con los nombres de variables de entorno, por lo que es probable que las restricciones se vuelvan más estrictas con el tiempo, no más permisivas). Entonces, si necesita pasar una variable cuyo nombre contiene caracteres especiales a un programa, páselo directamente, sin un caparazón intermedio ( env 'strange-name=some value' sh -c'…; myprogram'
puede o no funcionar).