GNU/Linux >> Linux Esercitazione >  >> Linux

Aggiunta di una nuova voce alla variabile PATH in ZSH

Ecco, aggiungi questa riga a .zshrc :

export PATH=/home/david/pear/bin:$PATH

MODIFICA :Funziona, ma solo la risposta di sopra è migliore, in quanto sfrutta l'interfaccia strutturata che ZSH fornisce per variabili come $PATH . Questo approccio è standard per bash , ma per quanto ne so, non c'è motivo di usarlo quando ZSH fornisce alternative migliori.


In realtà, l'utilizzo di ZSH consente di utilizzare una mappatura speciale delle variabili d'ambiente. Quindi puoi semplicemente fare:

# 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

Per me questa è una caratteristica molto chiara che può essere propagata ad altre variabili. Esempio:

typeset -T LD_LIBRARY_PATH ld_library_path :

Puoi aggiungere al tuo PATH in maniera minimale. Non c'è bisogno di parentesi a meno che tu non stia aggiungendo più di un elemento. Inoltre, di solito non ha bisogno di virgolette. Quindi il modo semplice e breve per aggiungere è:

path+=/some/new/bin/dir

Questa sintassi minuscola utilizza path come array , tuttavia influisce anche sul suo equivalente partner maiuscolo, PATH (a cui è "vincolato" tramite typeset ).

(Notare che no : è necessario/desiderato come separatore .)

Uso interattivo comune

Quindi il modello comune per testare un nuovo script/eseguibile diventa:

path+=$PWD/.
# or
path+=$PWD/bin

Utilizzo comune della configurazione

Puoi cospargere le impostazioni del percorso attorno al tuo .zshrc (come sopra) e naturalmente farà sì che le impostazioni elencate in precedenza abbiano la precedenza (sebbene tu possa occasionalmente voler ancora usare il modulo "prepend" path=(/some/new/bin/dir $path) ).

Bocconcini correlati

Trattare path in questo modo (come un array) significa anche:non c'è bisogno di fare un rehash per trovare i nuovi comandi percorsi.

Dai anche un'occhiata a vared path come un modo dinamico per modificare path (e altre cose).

Potresti essere interessato solo a path per questa domanda, ma poiché stiamo parlando di esportazioni e array, tieni presente chegli array generalmente non possono essere esportati.

Puoi persino prevenire PATH dall'accettare voci duplicate (fare riferimento a questo e a questo):

typeset -U path

PATH precompilato

Il motivo per cui il tuo percorso contiene già alcune voci è dovuto ai file della shell di sistema che impostano il percorso per te. Questo è trattato in un paio di altri post:

  • Perché e dove è impostata la variabile env $PATH?
  • Dov'è la fonte di $PATH? Non riesco a trovarlo in .zshrc

Linux
  1. Nuovo processo genitore quando il processo genitore muore?

  2. Ciclo degli elementi di una variabile di percorso in Bash

  3. Rimuovi i percorsi ridondanti dalla variabile $PATH

  4. Come posso modificare $ PATH su Linux?

  5. Individuazione dell'origine di una funzione in zsh

Esplorando il nuovo comando segreto Podman

Aggiunta di un nuovo servizio a Linux systemd

Come aggiungere in modo pulito a $ percorso?

Shebang indipendenti dal percorso?

$Variabile Percorso Variabile Env?

Aggiunta di cartelle alla variabile di ambiente del percorso?