Lectura sobre esta pregunta: en zsh, ¿cómo puedo enumerar todas las variables de entorno? , Me preguntaba, ¿cómo puedo enumerar todas las variables de shell ?
Además, ¿la distinción entre variables de shell y variables de entorno se aplica a shells que no sean zsh?
Estoy principalmente interesado en Bash y Zsh, pero sería genial saber cómo hacerlo en otros shells convencionales.

declare -phaz lo mismoset -o posixno existe en zsh;setno genera definiciones de funciones.set -o posixes un error de sintaxis en la mayoría de los shells.exec, las variables de shell no.Hay muchas alternativas:
printenv
env
exportar
conjunto
También es útil para obtener variables de shell.
Si necesita información adicional (entero, exportado), debe usar
composición tipográfica
export tiene la ventaja de que su salida se puede volver a leer de inmediato en el shell.
Por último, hay
compgen -v
que muestra todas las variables, shell y entorno, sin su valor o información adicional. Tendrá que hacer eco de $ VARIABLE_NAME para encontrar el valor de la variable. Pero al menos la lista está completa. Pertenece a bash , no a zsh .
fuente
exportno tiene ninguna ventajaset, al menos, cuando se trata de cotizar para el reingreso de shell. Yprintenvyenvno son en absoluto acerca de las variables de shell, aunque éstos lo hacen a menudo coinciden con las variables de entorno.Con
zsh, puede usartypeset, que proporciona más información queset, por ejemplo, el tipo de las variables. Todavía puede filtrar la salida congreposed, según lo que desee. Las variables de entorno están marcadas comoexporteden la salida.fuente