cd $ {DIR_PATH} возвращает «Нет такого файла или каталога»

OS = MacOS 10.8.5 / Darwin Kernel Version 12.5.0 .

В моем .bash_profile меня есть:

 export DIR_PATH=~/concrete/path 

На терминале

 >echo ${DIR_PATH} ~/concrete/path 

Также явный cd работает:

 >cd ~/concrete/path >pwd /Users/myuserid/concrete/path 

Но когда я сделаю

 >cd ${DIR_PATH} -bash: cd: ~/concrete/path: No such file or directory 

В чем проблема?

  • Как переменные могут использовать «~» для cd'ing?
  • Когда я cd через символическую ссылку, почему pwd показывает символическую ссылку вместо реального пути?
  • Опция -e для встроенного cd
  • Как мне избежать имени подкаталога с амперсандом в нем?
  • Как изменить рабочий каталог вызова оболочки с помощью скрипта?
  • Используется ли `` `только с cd?
  • Комбинированные `mkdir` и` cd`?
  • Как перейти в предыдущий рабочий каталог в терминале?
  • 2 Solutions collect form web for “cd $ {DIR_PATH} возвращает «Нет такого файла или каталога»”

    Вместо того, чтобы давать ~, поскольку ваш дом в .bash_profile дает абсолютный путь:

     export DIR_PATH=/Users/myuserid/concrete/path 

    Проблема в том, что ваш bash не мог заменить ~ ваш домашний каталог в вашем профиле bash.

    В качестве альтернативы использованию тильды ~ или с использованием жесткого пути /Users/myuserid/... Я бы предложил вместо этого использовать переменную среды $HOME . Такие переменные обычно устанавливаются путем login (см. man login ) в большинстве Unix, и я подозреваю, что OSX также сделает это.

    выдержка

    Это должно позволить администратору системы войти в систему даже в случае сетевых проблем. Значение для $HOME , $USER , $SHELL , $PATH , $LOGNAME и $MAIL устанавливается в соответствии с соответствующими полями в записи пароля. $PATH умолчанию для /usr/local/bin:/bin:/usr/bin для обычных пользователей и /usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin для root, если не настроен другой.

    Как всегда, вы можете использовать команду env чтобы увидеть, какие переменные у вас есть в вашем распоряжении.

    Рекомендации

    • Настройка среды OS X Unix
    Linux и Unix - лучшая ОС в мире.