Estoy usando zsh y estoy tratando de agregar una nueva entrada ( /home/david/pear/bin) a la PATHvariable pero no sé cómo.
Lo que más me confunde es que no hay una sola referencia a una PATHvariable en mi ~/.zshrcarchivo, sino que echo $PATHdevuelve:
/usr/lib/lightdm/lightdm:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
Entonces, una PATHvariable se está estableciendo en alguna parte.

PATH="/home/david/pear/bin:/usr/bin:etc"quePATH=/home/david/pear/bin:/usr/bin:etcpara que se quede en zshrc.PATHdel proceso principal que lo inició, y luego cuando se ejecuta.zshrc(.bashrco lo que sea), eso es lo que le permite agregar cosas adicionales a esa ruta.En realidad, el uso de ZSH le permite utilizar un mapeo especial de variables de entorno. Entonces simplemente puedes hacer:
Para mí, esa es una característica muy clara que se puede propagar a otras variables. Ejemplo:
fuente
~/.zshrcse obtiene después.profiley sobrescribe todo.profile. Me tomó un tiempo tirar de mi cabello para resolverlo.-xy dejar solo valores únicos en una variable con-U, se asume dos puntos por defecto, por lo que puede ser:typeset -TUx PATH pathpath=(...)(sin hacer referencia$patho$PATHdentro) asigna,path=(... $path)antepone ypath+(...)agrega.Puede agregar a su
PATHde una manera mínima. No necesita paréntesis a menos que esté agregando más de un elemento. Tampoco suele necesitar comillas. Entonces, la forma simple y corta de agregar es:Uso común
Entonces el patrón común para probar un nuevo script / ejecutable se convierte en:
Esta sintaxis en minúsculas se utiliza
pathcomo una matriz , pero también afecta a su equivalente en mayúsculas,PATHal que está "vinculado" a través detypeset.(Observe que no
:se necesita / desea como separador ).Cositas relacionadas
Tratar de
pathesta manera (como una matriz) también significa: no es necesario hacer unarehashpara obtener los comandos recién modificados que se encuentran.También eche un vistazo
vared pathcomo una forma dinámica de editarpathy otras cosas.Es posible que solo le interese
pathesta pregunta, pero como estamos hablando de exportaciones y matrices, tenga en cuenta que las matrices generalmente no se pueden exportar.Incluso puede evitar
PATHtomar entradas duplicadas (consulte esto y esto ):fuente
path+='my/path' # for fun. Es obvio si tiene espacios, pero no tanto si tiene comentarios.path. Se:requiere un precedente paraPATH, como sigue en .zshrcPATH+=:/Users/path/to/my/folderun forro, sin abrir
~/.zshrcarchivoo
Para ver el efecto, hazlo
source ~/.zshrcen la misma pestaña o abre una nueva pestañafuente
Se agregó ruta a ~ / .zshrc
sudo vi ~/.zshrcagregar nueva ruta
Actualización ~ / .zshrc
Guardar ~ / .zshrc
source ~/.zshrcComprobar RUTA
echo $PATHfuente
Bashcamino.OPCIÓN 1: Agregue esta línea a ~ / .zshrc:
Después de eso, debe ejecutar
source ~/.zshrcpara que los cambios surtan efecto O cierre esta ventana y abra una nuevaOPCIÓN 2: ejecútelo dentro de la consola del terminal para agregar esta ruta solo a la sesión actual de la ventana del terminal. Cuando cierre la ventana / sesión, se perderá.
fuente