RANDOMNo es una variable de entorno. Es una variable de shell mantenida por algunos shells. Generalmente no se exporta por defecto. Es por eso que no aparece en la salida de env.
Una vez que se ha utilizado al menos una vez, sería aparecer en la salida de set, que, por sí mismo, las listas de las variables de shell (y funciones) y sus valores en la sesión shell actual. Este comportamiento depende del shell y el uso pdkshen OpenBSD RANDOMse enumeraría setincluso si no se usaba anteriormente.
El resto de esta respuesta se refiere a lo que podría esperarse que suceda si RANDOMse exporta (es decir, se convierte en una variable de entorno).
Exportarlo lo export RANDOMconvertiría en una variable de entorno, pero su uso estaría muy limitado ya que su valor en un proceso secundario sería "aleatorio pero estático" (lo que significa que sería un número aleatorio inmutable). El comportamiento exacto difiere entre los depósitos.
Estoy usando pdkshOpenBSD en el ejemplo a continuación y obtengo un nuevo valor aleatorio en cada awkejecución (pero el mismo valor cada vez dentro de la misma awkinstancia). Utilizando bash, obtendría exactamente el mismo valor aleatorio en todas las invocaciones de awk.
$ awk 'BEGIN { print ENVIRON["RANDOM"], ENVIRON["RANDOM"] }'
25444 25444
$ awk 'BEGIN { print ENVIRON["RANDOM"], ENVIRON["RANDOM"] }'
30906 30906
En bash, el valor exportado de RANDOMpermanecería estático independientemente del uso de RANDOMen el shell (donde cada uso de $RANDOMtodavía daría un nuevo valor).
Esto se debe a que cada referencia a la variable de shell RANDOM en bashhace que el shell acceda a su get_random()función interna para darle a la variable un nuevo valor aleatorio, pero el shell no actualiza la variable de entorno RANDOM . Esto es similar en comportamiento como con otras dinámicas bashvariables, tales como LINENO, SECONDS, BASHPIDetc.
Para actualizar la variable de entorno RANDOMen bash, habría que asignarle el valor de la variable de shell RANDOM y reexportación que:
export RANDOM="$RANDOM"
Para mí no está claro si esto tendría el efecto secundario adicional de volver a sembrar el generador de números aleatorios basho no (pero una suposición educada sería que no lo hace).
envno es un comando de shell ya que generalmente no está integrado en el shell.