Come posso aggiungere un percorso alla variabile d'ambiente PATH?


11

Voglio aggiungere un percorso alla PATHvariabile d'ambiente?

Ho provato con export PATH=/mypath:$PATHe funziona. Ma la prossima volta che avvierò il Terminale, il mio nuovo percorso non sarà più nella PATHvariabile d'ambiente.

Come posso aggiungere un percorso alla PATHvariabile d'ambiente? e dovrebbe esserci anche la prossima volta che avvierò il Terminale.


Ora ho ancora problemi con questo, il trucco che ha funzionato prima sembra non funzionare più.

Ho provato con:

echo 'export GRADLE_HOME=/Users/jonas/gradle-1.2/' >> ~/.profile
echo 'export PATH=GRADLE_HOME/bin:$PATH' >> ~/.profile

per aggiungere due variabili d'ambiente. Quindi il mio ~/.profilefile ha questo contenuto:

export GRADLE_HOME=/Users/jonas/gradle-1.2/
export PATH=GRADLE_HOME/bin:$PATH

Ma quando avvio una nuova finestra Terminale e digito gradle(il comando a cui ho aggiunto PATH), ricevo un messaggio che il comando non esiste. Se eseguo il comando da /Users/jonas/gradle-1.2/binesso funziona benissimo!


Se ti capita di rovinare qualcosa, vedi anche: Ripristina la tua variabile PATH
Jari Keinänen,

1
L'assegnazione a PATH (seconda esportazione) dovrebbe essere con $ GRADLE_HOME
nohillside

Risposte:


5

echo 'export PATH=/my/path:$PATH' >> ~/.bash_profile dovrebbe fare il trucco!

Se hai usato echo 'export PATH=/my/path:$PATH' > ~/.bash_profile, o una tale variazione, sovrascriveresti il ​​contenuto del tuo profilo!


9

OSX legge i seguenti file in ordine quando si apre un terminale:

/etc/profile
~/.bash_profile
~/.bash_login   
~/.profile     

Quindi inserisci l'aggiunta del tuo percorso in uno di questi. Normalmente metto aggiunte~/.bash_profile


2
Grazie, ho usatoecho 'export PATH=/mypath:$PATH' >> ~/.profile
Jonas il

3

Oltre ai luoghi menzionati da @RobZolkos, anche la shell di accesso cerca /etc/pathse i file all'interno /etc/paths.d/. Una voce del percorso per riga in questi file.

Vedi /etc/profilee la pagina del manuale per path_helper.


Ok grazie! ma il problema più grande era come aggiungere il percorso. Ma ho trovatoecho 'export PATH=/mypath:$PATH' >> ~/.profile
Jonas il

@Jonas: ho capito che il tuo problema era stato risolto. La mia risposta è stata pensata per i futuri lettori, in modo che possano vedere tutte le opzioni disponibili.
Harald Hanche-Olsen,

2

Vecchia domanda ma, per gli utenti di MacOS X Catalina:

Crea / modifica ~/.zshenv:

# comment for yourself
PATH="$PATH:to/your/path"

Si noti che modificano PATHin ~/.zprofileo ~/.zshrcnon è corretto, dovrebbe essere ~/.zshenv.

Se devi anteporre qualcosa a PATH, crea / modifica ulteriormente ~/.zprofile:

# apply the prepend to PATH
[[ -r ~/.zshenv ]] && source ~/.zshenv
# remove duplicate in PATH
typeset -U PATH

Riferimento: http://zsh.sourceforge.net/Intro/intro_3.html


Cosa intendi con "Se devi anteporre al PERCORSO" e perché non puoi farlo anche tu .zshenv?
Nohillside

@nohillside: mi dispiace per la mia cattiva grammatica, ma buona domanda. Se si tenta di anteporre qualcosa alla PATHin ~/.zshenvdalle PATH="to/your/path:$PATH", senza le linee ~/.zprofile, non funzionerà. Qualcosa che chiama path_helperli sposterà /usr/local/bin/:/usr/bin:...in primo piano PATH.
Piove il

In breve, si tratta di caricare l'ordine. path_helpersarà eseguito dopo ~/.zshenvma prima ~/.zproflie. E dal mio studio oggi consiglierei di usare symlink invece di modificare PATH, il che è molto più semplice.
Piove il

0

Inserisci in .bashrc queste righe di codice:

function pathadd {              # Add new element to PATH
  if ! echo $PATH | egrep -q "(:|^)$1(:|$)"
  then if [ "$2" = "after" ]
       then PATH="$PATH:$1"
       else PATH="$1:$PATH"
       fi
  fi
}

quindi digitare un comando come: pathadd /opt/local/bino pathadd /opt/local/bin after.


Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.