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

OS = MacOS 10.8.5 / Darwin Kernel Version 12.5.0 .

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

  • Параметры переменных окружения из файла
  • ls после cd в tcsh?
  • Быстрая смена каталога в аналогичную структуру каталогов?
  • Как запустить процесс в определенном каталоге?
  • возможно ли программно изменить рабочий каталог родительской оболочки?
  • Сценарий для изменения текущего каталога (cd, pwd)
  •  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 с двойной косой чертой вечно на Mac OS X Terminal
  • Почему `.` отображается` ls`?
  • Автоматическое добавление косой черты при навигации по символической ссылке
  • Конфигурация Tmux не сохраняет PWD в новом окне или разделенном окне
  • Командная подсистема Bash с переменной окружением
  • Переход в каталог, связанный ссылкой
  • 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 - лучшая ОС в мире.