15

Я возился с переменными среды на моем Mac, пытаясь научиться их использовать, и я использовал команду nano ~/.bash_profile где затем добавил строку HOME=/Users/MyCompName/Desktop чтобы обновить мою домашнюю переменную.

Это изменение сработало и может быть замечено, когда я использую printenv для просмотра всех переменных окружения, но когда я вернулся, чтобы изменить HOME я больше не мог найти ~/.bash_profile . Куда это делось?

1 ответ1

32

Это в том же месте.

Перед изменением ~ расширяется к чему - то вроде /Users/YourUserName оболочка находит свой .bash_profile там. После получения файла ~ расширяется по другому пути, поэтому ~/.bash_profile больше не указывает на соответствующий файл. Это потому, что в этом контексте ~ означает $HOME .

Если вы знаете полный путь к вашему домашнему каталогу, вы можете использовать его вместо ~ . В Mac это будет выглядеть примерно так:

nano /Users/YourUserName/.bash_profile

Или пусть ваш Bash ищет ваш домашний каталог в базе данных пользователей, а не просто смотрит на $HOME . Это не требует от вас ничего запоминать:

nano ~YourUserName/.bash_profile

Изменение вашей переменной HOME без изменения вашего фактического домашнего каталога - не лучшая идея. Изменение домашнего каталога любого пользователя является административной задачей, обычно обычные пользователи не могут этого сделать.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .