Listar todas mis variables

Listar todas mis variables

Recién estoy aprendiendo los conceptos básicos, incluido cómo declarar y manipular variables. ¿Existe una forma sencilla de mostrar una lista de todas las variables que he nombrado? (Todo lo que encontré al buscar solo habla de variables de entorno, que pueden ser lo que estoy buscando, pero ¿probablemente no?)

Respuesta1

Ejecutarlo declarepor sí solo le dará una lista de todas las variables ambientales.en el shell actual, incluidos aquellos que usted mismo definió. También incluirá cualquier función, a menos que uses la -popción que las omite, pero agrega algo de ruido adicional.

Respuesta2

Hay 2 tipos diferentes de variables (en realidad más que eso, pero en este contexto solo 2), privadas y exportadas.

  • Las variables privadas son variables que pueden usarse en el shell (o script), pero no en los programas iniciados por el shell (o script).
    Puede obtener una lista de todas las variables, incluidas las exportadas, utilizando declare, typeseto set. En bash los 3 hacen lo mismo.

  • Las variables exportadas pueden ser utilizadas tanto por el shell como por los programas iniciados por él.
    Puede obtener una lista de variables exportadas utilizando env.

Una cosa clave a tener en cuenta es al hacer cosas como esta:

FOO="bar"
echo "$FOO"

$FOOes una variable privada/no exportada. En realidad, el caparazón se está expandiendo $FOOantes barde pasarlo a echo. En realidad, también echose le llama así echo "bar".


Puede exportar variables haciendo export FOO, o export FOO="bar".
Además, puede exportar una variable para una sola llamada a un programa agregando la variable al comienzo del comando. Por ejemplo

FOO="bar" cmd1
cmd2

cmd1tendrá acceso $FOOpero cmd2no lo tendrá.

información relacionada