echo $PATH не отражает сохраненные пути

#macos #shell #path

#macos #оболочка #путь

Вопрос:

Я попытался добавить, export PATH="$PATH:/Users/My_Name/desktop/My_Folder" , к .bash_profile , .bashrc , и .profile . Я выполнил команду source ~/.bash_profile , source ~/.bashrc , и source ~/.profile , чтобы обновить $PATH , и она действительно отражает это при выполнении echo $PATH .

Однако, когда я открываю новый терминал и выполняю echo $PATH его, он остается неизменным.

Проблема в том, что моя система (macOS Big Sur) не распознает обновленный $PATH , когда я открываю новый терминал, если я не выполняю исходную команду каждый раз, чтобы обновить свой $PATH .

Для контекста я отредактировал все три, потому что я просматривал несколько сайтов в поисках предложений и исчерпал все свои варианты.

Решение: я понял, что использую zsh . Чтобы изменить, я выполнил chsh -s /bin/bash команду, чтобы изменить свою оболочку на bash.

Комментарии:

1. Переполнение стека предназначено для вопросов программирования. Сценарии оболочки по теме, но общие вопросы об использовании macOS относятся к Ask Different , Unix amp; Linux или суперпользователю .

2. Вероятно, вы используете zsh , а не bash . Соответствующий файл будет .zprofile .

3. .zprofile для меня не существует файла. Должен ли я создать его, а затем экспортировать в него свой путь?

4. Да, вы можете просто создать его, когда он не существует.

Ответ №1:

Решение: я понял, что использую zsh . Чтобы изменить, я выполнил chsh -s /bin/bash команду, чтобы изменить свою оболочку на bash.

Ответ №2:

Вам нужно открыть файл .profile в редакторе, таком как nano или pico, и убедиться, что ваша команда находится в нижней части файла. Кроме того, убедитесь, что вы закрываете свои кавычки следующим образом:

 export PATH="$PATH:/Users/My_Name/desktop/My_Folder"
 

Вы также можете рассмотреть возможность размещения нового пути спереди следующим образом:

 export PATH="/Users/My_Name/desktop/My_Folder:$PATH"
 

У меня есть псевдоним в папке моего профиля под названием reBASH, который выглядит следующим образом

 alias reBASH='source ~/.bash_profile'
 

Так что, когда я меняю .bash_profile, я просто набираю reBASH, нажимаю enter, и он применяется к текущему сеансу… просто то, что вы могли бы рассмотреть как удобство при выполнении подобных действий.

Комментарии:

1. Прошу прощения, в моем сообщении была ошибка. Я закрыл кавычки на своем терминале, аналогичные первой строке кода, которую вы указали. Я попробовал вторую строку кода и обновил, и это не сработало. У меня сложилось впечатление, что смысл добавления путей в $PATH заключается в том, чтобы упростить работу с терминалом, и я пытаюсь найти способ правильно обновить свой путь, чтобы мне не приходилось каждый раз выполнять исходную команду. Спасибо за сообщение, оно оценено.

2. @breadelicious переменная среды PATH в вашей оболочке терминала в основном говорит об этом… когда вы вводите команду и нажимаете enter, оболочка будет искать каждый путь, который находится в переменной PATH для команды, которую вы пытаетесь выполнить, так что вам не нужно вводить компакт-диск в эту папку, а затем выполнять свою команду. Если папка, в которой находится программа, которую вы пытаетесь запустить, находится в этой переменной PATH, то вы можете запустить эту программу независимо от того, в какой папке вы находитесь в данный момент. Надеюсь, это имеет смысл…

3. @breadelicious Это хорошее чтение: medium.com/@jalendport /…