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 

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

  • Изменение родительского каталога (../) с символическими ссылками
  • Возможность легко переключаться между каталогами в разных областях
  • Bash не может запустить команду из скрипта: команда mkdir не найдена
  • Вкладка для отображения содержимого каталога
  • cd два уровня вниз от корня
  • cd .. в корневой папке
  • Как эффективно управлять файловой системой?
  • Почему `.` отображается` ls`?
  • 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 - лучшая ОС в мире.