2014-01-06 2 views
2

Когда я начинаю свой терминал я получаю сообщение:терминал не показывает «нет такого файла или каталога» для переменной PATH при запуске

bash: cd: PATH=/Users/ryan/Users/ryan/Documents/Pebble-Dev/PebbleSDK-2.0-BETA3/bin:/Users/ryan/pebble-dev/PebbleSDK-2.0-BETA4/bin:/Users/ryan/.rvm/gems/ruby-2.0.0-head/bin:/Users/ryan/.rvm/gems/[email protected]/bin:/Users/ryan/.rvm/rubies/ruby-2.0.0-head/bin:/Users/ryan/.rvm/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin: No such file or directory 

я понимаю, есть несколько PebbleSDKs и путь Первых из них, безусловно неправильно. Не могу найти, от чего его тянет.

Кроме того, когда я типа echo $PATH в терминале я получаю:

/Users/ryan/pebble-dev/PebbleSDK-2.0-BETA4/bin:/Users/ryan/pebble-dev/PebbleSDK-2.0-BETA4/bin:/Users/ryan/pebble-dev/PebbleSDK-2.0-BETA4/bin:/Users/ryan/Documents/Pebble-Dev/PebbleSDK-2.0-BETA3/bin:/Users/ryan/pebble-dev/PebbleSDK-2.0-BETA4/bin:/Users/ryan/.rvm/gems/ruby-2.0.0-head/bin:/Users/ryan/.rvm/gems/[email protected]/bin:/Users/ryan/.rvm/rubies/ruby-2.0.0-head/bin:/Users/ryan/.rvm/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin 

который также не подходит, так как он имеет еще более множественным PebbleSDKs в нем.

У меня есть три вопроса: 1) Где вытащить из исходной ПУТЫ? 2) Где находится echo $PATH? 3 Почему они разные?

Спасибо!

UPDATE 1:

Это то, что я имею в /etc/bashrc:

# System-wide .bashrc file for interactive bash(1) shells. 
if [ -z "$PS1" ]; then 
    return 
fi 

PS1='\h:\W \u\$ ' 
# Make bash check its window size after a process completes 
shopt -s checkwinsize 
# Tell the terminal about the working directory at each prompt. 
if [ "$TERM_PROGRAM" == "Apple_Terminal" ] && [ -z "$INSIDE_EMACS" ]; then 
    update_terminal_cwd() { 
     # Identify the directory using a "file:" scheme URL, 
     # including the host name to disambiguate local vs. 
     # remote connections. Percent-escape spaces. 
    local SEARCH=' ' 
    local REPLACE='%20' 
    local PWD_URL="file://$HOSTNAME${PWD//$SEARCH/$REPLACE}" 
    printf '\e]7;%s\a' "$PWD_URL" 
    } 
    PROMPT_COMMAND="update_terminal_cwd; $PROMPT_COMMAND" 
fi 

Это то, что я имею в /etc/profile:

# System-wide .profile for sh(1) 

if [ -x /usr/libexec/path_helper ]; then 
eval `/usr/libexec/path_helper -s` 
fi 

if [ "${BASH-no}" != "no" ]; then 
[ -r /etc/bashrc ] && . /etc/bashrc 
fi 

Где бы .bashrc, .bash_profile, и .profile Файлы, о которых вы упомянули, будут найдены?

+0

Реальный вопрос: где в файлах конфигурации вы пытаетесь передать присвоение 'PATH' в качестве аргумента' cd'? – chepner

+0

Я понятия не имею ... не моя машина, на которой это происходит. Где я могу начать искать для этого? – ryanpitts1

+2

'.bashrc',' .bash_profile' и '.profile' были бы хорошими местами для начала. Менее вероятно, но возможно будут системные файлы, такие как '/ etc/profile' и'/etc/bashrc'. – chepner

ответ

2

Проверить ~/.bashrc или .bash_profile для кода, который передает задание PATH=... в качестве аргумента cd.

+0

Не могли бы вы рассказать об этом, пожалуйста? Я совершенно новичок в терминале Unix и понимаю, что вы подразумеваете под «кодом, который передает назначение PATH = ... как аргумент для cd». –

+0

Если файл запуска содержал строку типа 'cd PATH = ...', оболочка интерпретировала бы это как запрос на изменение рабочего каталога на имя с именем 'PATH = ...'. – chepner