mac - zsh themes linux
¿Cómo mantengo las funciones/variables locales a mi zshrc? (3)
Están disponibles, pero no se exportan, por lo que los scripts que se inician desde la línea de comandos no obtienen estas variables. Si su .zshrc
parece
function zshrc()
{
local VAR=1
# Do stuff
}
zshrc
y entonces nunca más desea volver a iniciar la función zshrc
, simplemente puede hacer
unfunction zshrc
después.
Cualquier variable que declare en mi zshrc
está disponible en el shell como una variable de entorno. No quiero que esto suceda.
Intenté colocar las variables en una función y establecerlas como locales, pero luego la función está disponible fuera de zshrc
.
¿Cómo puedo hacer que lo que sucede en mi zshrc se mantenga en mi zshrc ?
Si está utilizando una versión reciente de zsh, puede usar una función anónima:
function () {
local xyz=abc
# whatever
}
La función se ejecutará automáticamente y luego se desechará, existe solo para fines de alcance.
Esto funciona para cualquier archivo de origen , no solo zshrc.
Si no agrega la palabra local
a una variable, permanecerá hasta que realice una de las siguientes acciones:
- Abre una nueva ventana de terminal.
- Ejecute
exec zsh
oexec bash
dependiendo de su shell. Esto simplemente borra las variables locales que no fueron asignadas con la palabralocal
.
Evita esto
method_name(){
a=11
echo $a
}
Ejemplo correcto
method_name(){
local a=11
echo $a
}
Esta variable está method_name
nombre de la función method_name
y solo está disponible dentro de la función cuando se la llama (y no después).
Si desea acceso directo a esa variable local, puede configurarlo de esta manera
local z=11
Y llamalo asi
echo $z
Además, las variables de entorno son diferentes de las variables locales
Dependiendo de su shell y sus necesidades, puede usar .bash_profile
o .bashrc
o .zshrc
etc. para almacenar funciones y alias.
Ver esta referencia para más información sobre las variables de entorno y sus respectivas shells.
Puede ver rápidamente las variables de entorno con env
o printenv
La convención es utilizar MAYÚSCULAS.
Para establecer temporalmente una variable de entorno (almacenada hasta que cierre el terminal)
export A=11
o export B="11 is part of this string"
Suponiendo que haya abierto una nueva ventana de terminal o que haya obtenido .zshrc o .bashrc o la que esté usando, ahora puede usar esta variable de entorno hasta que cierre su sesión de terminal. Nota: no utilice $ al configurar, pero use $ al hacer referencia a la variable.
Ejemplos
echo "A is equal to: $A and that is pretty nice"
echo "$A"
Cómo obtener un archivo
source ~/path/to/file/filename
Ejemplo
source ~/.bash_profile
Para establecer una variable de entorno (hasta que la elimine o la vuelva a configurar)
Utilice el código anterior pero colóquelo en su ~ / .bash_profile o ~ / .zshrc u otro archivo respectivo. Guarde el archivo y la fuente.
Ejemplo
export B="11 is part of this string"
Ahora puedes verlo con
env
Para eliminar esa variable de entorno, elimínela del archivo y, de nuevo, obtenga el archivo.
Para eliminar temporalmente una variable ambiental, use unset
Ejemplo
unset B
Tenga en cuenta que no hay $
al desarmar.
Establecer variables de entorno desde la línea de comando.
export BLABLA="environment variable set from the command line, saved in file for later use"
Verifique el archivo al que lo está enviando, puede que no comience en una nueva línea, puede haber sido concatenado a su última línea, que fue alguna otra función, alias u otra.
Esta no es una respuesta completa, pero es un gran paso en la dirección correcta. Muestra cómo se puede configurar, usar y eliminar el alcance en un terminal shell.