unix - usuario - variables de entorno en red hat
UNIX, obtener variable de entorno (7)
La solución realmente depende de cuáles sean las restricciones por las que no puede usar un simple $VAR
. Tal vez podrías llamar a un intérprete de comandos que no tenga las restricciones y dejar que este subconjunto evalúe la variable:
bash -c ''echo $VAR''
Tengo una pregunta ridícula debido a un problema ridículo.
Normalmente, si quiero obtener el contenido de una variable de entorno en el shell UNIX, puedo hacerlo
echo ${VAR}
Supongamos, debido a mi ridícula situación, que esto no es posible.
¿Cómo puedo obtener el contenido de una variable de entorno para stdout, sin que alguien que está mirando el comando en sí (no el resultado), vea el valor de la variable de entorno.
Puedo imaginarme que la solución es algo así como echo env(NAME_OF_VAR)
aunque parece que no puedo encontrarlo. La solución tiene que funcionar en sh.
PD: No puedo escribir un script para esto, debe ser un comando integrado de Unix (lo sé, un problema ridículo)
Gracias (y perdón por lo absurdo)
Qué tal esto:
myVariable=$(env | grep VARIABLE_NAME | grep -oe ''[^=]*$'');
Te refieres a algo como esto:
ENV() {
printf ''echo $%s/n'' $1 | sh
}
Esto funciona en el viejo shell de Bourne.
Usar ${!VAR_NAME}
debe ser lo que estás buscando
> FOO=BAR123
> VAR_NAME=FOO
> echo ${VAR_NAME}
FOO
> echo ${!VAR_NAME}
BAR123
escriba el siguiente comando en el terminal, se mostrará toda la lista de variables de entorno
printenv
ahora imprima la variable deseada de esta manera:
echo $ VARIABLENAME
printenv VARIABLE_NAME
( set -o posix ; set ) | grep $var
búsqueda de todas las variables de formato compatibles con Unix utilizadas