Як я можу додати шлях до змінної середовища PATH?


11

Я хочу додати шлях до PATHзмінної середовища?

Я спробував, export PATH=/mypath:$PATHі це працює. Але наступного разу, коли я запускаю Термінал, мій новий шлях вже не вводить PATHзмінну оточення.

Як я можу додати шлях до PATHзмінної середовища? і він повинен бути там і наступного разу, коли я запускаю Термінал.


У мене зараз проблеми з цим зараз, трюк, який працював раніше, схоже, вже не працює.

Я спробував:

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

додати дві змінні середовища. Тоді мій ~/.profile-файл має такий вміст:

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

Але коли я запускаю нове вікно терміналу і набираю gradle(команда, яку я додав PATH), я отримую повідомлення про те, що команда не існує. Якщо я запускаю команду з /Users/jonas/gradle-1.2/binнеї, працює добре!


Якщо вам щось трапляється, дивіться також: Скиньте змінну PATH
Jari Keinänen

1
Завдання PATH (другий експорт) має бути з $ GRADLE_HOME
nohillside

Відповіді:


5

echo 'export PATH=/my/path:$PATH' >> ~/.bash_profile повинен зробити трюк!

Якщо ви використовували echo 'export PATH=/my/path:$PATH' > ~/.bash_profileабо будь-яку подібну варіацію, ви б перезаписали вміст свого профілю!


9

OSX зчитує такі файли для того, щоб відкрити термінал:

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

Тож розмістіть додаток до свого шляху до одного з них. Я зазвичай вкладаю доповнення~/.bash_profile


2
Дякую, я використавecho 'export PATH=/mypath:$PATH' >> ~/.profile
Jonas

3

Окрім місць, які згадує @RobZolkos, оболонка для входу також шукає /etc/pathsі файли всередині /etc/paths.d/. Запис у одному файлі за рядком у цих файлах.

Дивіться /etc/profileта сторінку керівництва для path_helper.


Добре, дякую! але найбільша проблема полягала в тому, як додати шлях. Але я знайшовecho 'export PATH=/mypath:$PATH' >> ~/.profile
Йонас

@Jonas: Я зрозумів, що ваша проблема вирішена. Моя відповідь була розрахована на користь майбутніх читачів, тому вони зможуть побачити всі доступні їм варіанти.
Харальд Ханш-Ольсен

2

Старе питання, але для користувачів MacOS X Catalina:

Створити / редагувати ~/.zshenv:

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

Зверніть увагу , що зміни PATHв ~/.zprofileабо ~/.zshrcне є правильним, воно повинно бути ~/.zshenv.

Якщо вам потрібно щось додати PATH, надалі створіть / відредагуйте ~/.zprofile:

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

Довідка: http://zsh.sourceforge.net/Intro/intro_3.html


Що ви маєте на увазі під назвою "Якщо вам потрібно додати ПАТ", і чому це також не можна зробити .zshenv?
nohillside

@nohillside: Вибачте за мою погану граматику, але добре запитання. Якщо ви намагаєтеся що - то випереджати до PATHв ~/.zshenvпо PATH="to/your/path:$PATH", без ліній в ~/.zprofile, він не буде працювати. Щось дзвінок path_helperперемістить їх /usr/local/bin/:/usr/bin:...на фронт PATH.
Дощ

Коротше кажучи, це питання порядку завантаження. path_helperбуде виконано після, ~/.zshenvале раніше ~/.zproflie. І з мого сьогоднішнього дослідження я рекомендував би використовувати symlink замість модифікації PATH, що набагато простіше.
Дощ

0

Вставте в .bashrc ці рядки коду:

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
}

потім введіть команду типу: pathadd /opt/local/binабо pathadd /opt/local/bin after.


Зверніть увагу на дві функції в init- github.com/fink/base-files/blob/master/init.sh.in
fd0,
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.