
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 declare
por 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 -p
opció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, utilizandodeclare
,typeset
oset
. 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 utilizandoenv
.
Una cosa clave a tener en cuenta es al hacer cosas como esta:
FOO="bar"
echo "$FOO"
$FOO
es una variable privada/no exportada. En realidad, el caparazón se está expandiendo $FOO
antes bar
de pasarlo a echo
. En realidad, también echo
se 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
cmd1
tendrá acceso $FOO
pero cmd2
no lo tendrá.