Tenemos la mejor respuesta que hallamos en internet. Nosotros queremos que te resulte útil y si puedes compartir alguna mejora hazlo con libertad.
Solución:
En realidad, usar ZSH le permite usar un mapeo especial de variables de entorno. Así que simplemente puedes hacer:
# append
path+=('/home/david/pear/bin')
# or prepend
path=('/home/david/pear/bin' $path)
# export to sub-processes (make it inherited by child processes)
export PATH
Para mí, esa es una característica muy interesante que se puede propagar a otras variables. Ejemplo:
typeset -T LD_LIBRARY_PATH ld_library_path :
Aquí, agregue esta línea a .zshrc
:
export PATH=/home/david/pear/bin:$PATH
EDITAR: Esto funciona, pero la respuesta de Ony a continuación es mejor, ya que aprovecha la interfaz estructurada que proporciona ZSH para variables como $PATH
. Este enfoque es estándar para bash
pero que yo sepa, no hay razón para usarlo cuando ZSH ofrece mejores alternativas.
Puede adjuntar para usted PATH
de forma mínima. No es necesario usar paréntesis a menos que agregue más de un elemento. Tampoco suele necesitar comillas. Asi que la manera simple y corta de agregar es:
path+=/some/new/bin/dir
Esta sintaxis en minúsculas está usando path
como un arraypero también afecta a su equivalente en mayúsculas, PATH
(al que está “ligado” a través de typeset
).
(Darse cuenta de no :
es necesario/querido como separador.)
Uso interactivo común
Luego, el patrón común para probar un nuevo script/ejecutable se convierte en:
path+=$PWD/.
# or
path+=$PWD/bin
Uso de configuración común
Puede espolvorear configuraciones de ruta alrededor de su .zshrc
(como arriba) y naturalmente conducirá a la las configuraciones enumeradas anteriormente tienen prioridad (aunque es posible que de vez en cuando desee utilizar el formulario “anteponer” path=(/some/new/bin/dir $path)
).
Cositas relacionadas
Tratando path
de esta manera (como array) también significa: no hay necesidad de hacer un
rehash
para obtener los comandos recién trazados que se encuentran.
También eche un vistazo a vared path
como una forma dinámica de editar path
(Y otras cosas).
Puede que solo te interese path
para esta pregunta, pero como estamos hablando de exportaciones y matrices, tenga en cuenta que
las matrices generalmente no se pueden exportar.
Tu puedes incluso prevenir PATH
de aceptar entradas duplicadas
(consulte esto y esto):
typeset -U path
Nos encantaría que puedieras dar difusión a este tutorial si te valió la pena.