Команды Bash не работают на Mac

Команды Bash не работают на Mac

Здравствуйте, я открываю окно терминала на Mac Os 10.6.8, поскольку пытаюсь обновить Ruby до версии 1.9.3, и терминал сразу же выдает мне такой ответ, как только я его открываю:

-bash: export: /Library/Frameworks/Python.framework/Versions/Current/bin': not a valid identifier 
-bash: export:/Library/Frameworks/Python.framework/Versions/2.7/bin': not a valid identifier
-bash: export: /Library/Frameworks/Python.framework/Versions/Current/bin': not a valid identifier 
-bash: export:/Library/Frameworks/Python.framework/Versions/Current/bin': not a valid identifier 
-bash: export: /usr/bin': not a valid identifier 
-bash: export:/bin': not a valid identifier 
-bash: export: /usr/sbin': not a valid identifier 
-bash: export:/sbin': not a valid identifier 
-bash: export: /usr/local/bin': not a valid identifier 
-bash: export:/usr/local/git/bin': not a valid identifier 
-bash: export: /usr/X11/bin': not a valid identifier 
-bash: export:/Users/oskarniburski/.rvm/bin': not a valid identifier 
-bash: export: /usr/X11R6/bin': not a valid identifier 
-bash: export:/Library/Frameworks/Python.framework/Versions/Current/bin': not a valid identifier 
-bash: export: /Library/Frameworks/Python.framework/Versions/2.7/bin': not a valid identifier 
-bash: export:/Library/Frameworks/Python.framework/Versions/Current/bin': not a valid identifier 
-bash: export: /Library/Frameworks/Python.framework/Versions/Current/bin': not a valid identifier 
-bash: export:/usr/bin': not a valid identifier 
-bash: export: /bin': not a valid identifier 
-bash: export:/usr/sbin': not a valid identifier 
-bash: export: /sbin': not a valid identifier 
-bash: export:/usr/local/bin': not a valid identifier 
-bash: export: /usr/local/git/bin': not a valid identifier 
-bash: export:/usr/X11/bin': not a valid identifier 
-bash: export: /Users/oskarniburski/.rvm/bin': not a valid identifier 
-bash: export:/usr/X11R6/bin': not a valid identifier

Я пытался изменить свой путь, но это не сработало. Я не уверен, как решить эту проблему, и прочитал кучу форумов. Есть идеи?

Вот bash_profile:

$ /bin/cat ~/.bash_profile

# Setting PATH for MacPython 2.5
# The orginal version is saved in .bash_profile.pysave
PATH="/Library/Frameworks/Python.framework/Versions/Current/bin:${PATH}"
export PATH

# Setting PATH for MacPython 2.5
# The orginal version is saved in .bash_profile.pysave
PATH="/Library/Frameworks/Python.framework/Versions/Current/bin:${PATH}"
export PATH

# Setting PATH for Python 2.7
# The orginal version is saved in .bash_profile.pysave
PATH="/Library/Frameworks/Python.framework/Versions/2.7/bin:${PATH}"
export PATH

# Setting PATH for EPD_free-7.3-2
# The orginal version is saved in .bash_profile.pysave
PATH="/Library/Frameworks/Python.framework/Versions/Current/bin:${PATH}"
export PATH

# Setting PATH for Python 3.3
# The orginal version is saved in .bash_profile.pysave
PATH="/Library/Frameworks/Python.framework/Versions/3.3/bin:${PATH}"
export PATH

[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm" # Load RVM into a shell session *as a function*
export PATH=/usr/local/bin:/Library/Frameworks/Python.framework/Versions/3.3/bin /Library/Frameworks/Python.framework/Versions/Current/bin /Library/Frameworks/Python.framework/Versions/2.7/bin /Library/Frameworks/Python.framework/Versions/Current/bin /Library/Frameworks/Python.framework/Versions/Current/bin /usr/bin /bin /usr/sbin /sbin /usr/local/bin /usr/local/git/bin /usr/X11/bin /Users/oskarniburski/.rvm/bin /usr/X11R6/bin
export PATH=/usr/local/bin:/Library/Frameworks/Python.framework/Versions/3.3/bin /Library/Frameworks/Python.framework/Versions/Current/bin /Library/Frameworks/Python.framework/Versions/2.7/bin /Library/Frameworks/Python.framework/Versions/Current/bin /Library/Frameworks/Python.framework/Versions/Current/bin /usr/bin /bin /usr/sbin /sbin /usr/local/bin /usr/local/git/bin /usr/X11/bin /Users/oskarniburski/.rvm/bin /usr/X11R6/bin

##
# Your previous /Users/oskarniburski/.bash_profile file was backed up as /Users/oskarniburski/.bash_profile.macports-saved_2013-09-26_at_17:32:30
##

# MacPorts Installer addition on 2013-09-26_at_17:32:30: adding an appropriate PATH variable for use with MacPorts.
export PATH=/opt/local/bin:/opt/local/sbin:$PATH
# Finished adapting your PATH environment variable for use with MacPorts.

решение1

Хорошо, главная проблема здесь заключалась в том, что у вас были пробелы, разделяющие записи каталога в вашем файле $PATH, и что эти пробелы были в переменных, не заключенных в кавычки, что сбивало с толку bash.

В этом случае вы хотели добавить каталог в свой путь. Правильный синтаксис — PATH="/foo:/bar/baz:$PATH. Добавление $PATHв конец означает, что его текущее значение будет добавлено в конец переменной, таким образом, вы не перезапишете то, что уже было там. Каталоги в $PATHсчитываются по порядку, поэтому добавьте его в начало, если вы хотите, чтобы поиск новых каталогов производился последними: PATH="$PATH:/foo:/bar".

Другая проблема заключалась в том, что у вас было много дублирующих путей. Вы можете найти их, запустив

$ echo $PATH | perl -pne 's/:/\n/g' | sort | uniq -d
/bin
/Library/Frameworks/Python.framework/Versions/2.7/bin
/Library/Frameworks/Python.framework/Versions/3.3/bin
/Library/Frameworks/Python.framework/Versions/Current/bin
/sbin
/usr/bin
/usr/local/bin
/usr/sbin

Наконец, вы экспортировали $PATHнесколько раз, что бессмысленно. Я удалил все дубликаты и исправил ваш синтаксис, и в итоге получилось следующее:

# Setting PATH for MacPython 2.5
# The orginal version is saved in .bash_profile.pysave
PATH="/Library/Frameworks/Python.framework/Versions/Current/bin:${PATH}"

# Setting PATH for Python 2.7
# The orginal version is saved in .bash_profile.pysave
PATH="/Library/Frameworks/Python.framework/Versions/2.7/bin:${PATH}"

# Setting PATH for Python 3.3
# The orginal version is saved in .bash_profile.pysave
PATH="/Library/Frameworks/Python.framework/Versions/3.3/bin:${PATH}"

# Load RVM into a shell session *as a function*
[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm" 
PATH="/usr/local/git/bin:/usr/X11/bin:/Users/oskarniburski/.rvm/bin:/usr/X11R6/bin:$PATH"

##
# Your previous /Users/oskarniburski/.bash_profile file was backed up 
# as /Users/oskarniburski/.bash_profile.macports-saved_2013-09-26_at_17:32:30
##

# MacPorts Installer addition on 2013-09-26_at_17:32:30: adding an appropriate PATH 
# variable for use with MacPorts.
export PATH="/opt/local/bin:/opt/local/sbin:$PATH"

# Finished adapting your PATH environment variable for use with MacPorts.

Скопируйте этот файл, откройте терминал и выполните следующие команды:

/bin/cp ~/.bash_profile ~/bash_profile.bad
/bin/cat > ~/.bash_profile

Первая сделает резервную копию вашего текущего ~/.bash_profile(на всякий случай). Вторая, по-видимому, ничего не делает, но она будет открыта ~/.bash_profileдля записи. Просто вставьте то, что я дал выше, прямо в терминал, затем нажмите Enterи затем CtrlC. Это должно вернуть все в нормальное состояние.

ПРИМЕЧАНИЕ: Вы указали /bin, /sbin, /usr/binи /usr/local/binв вашем .bash_profile. Они почти наверняка уже есть в вашем $PATHи их не нужно добавлять. Если они отсутствуют ( echo $PATHчтобы увидеть текущее значение), просто добавьте их, используя синтаксис, который я описал выше.

Связанный контент