Cuando se invocan sin argumentos, los comandos env
y printenv
de GNU Coreutils imprimen el valor de cada variable de entorno. ¿Qué determina el orden en el que se imprimen estas variables? No es el orden alfabético ni el orden en que se configuraron las variables.
Respuesta1
Cada proceso tiene una lista de cadenas que mantiene como entorno. Cuando agrega, modifica o elimina elementos de esta lista, la biblioteca en tiempo de ejecución debe actualizar la matriz correspondiente. Debido a que no existe un requisito estándar para mantenerlo ordenado, el tiempo de ejecución utiliza lo que los desarrolladores decidieron que era la forma más rápida de actualizar la lista. Las consideraciones de rendimiento son lo quedeterminarel orden.
Para más información por supuesto, elcódigo fuente deenv
está disponible para inspección. Imprime el entorno en el orden que environ
utiliza la matriz.