update mac instalar awesome zsh zshrc

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:

  1. Abre una nueva ventana de terminal.
  2. Ejecute exec zsh o exec bash dependiendo de su shell. Esto simplemente borra las variables locales que no fueron asignadas con la palabra local .

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.

También lea esto para comprender cómo establecer variables de entorno en la línea de comandos usando expansiones de shell

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.