2015-02-03 4 views
3

Я пытаюсь изменить .bash_profile, который находится в моем корневом каталоге, но столкнулся с некоторыми проблемами. Я на OS X, Yosemite, на Macbook Pro. Как я понимаю, файл .bash_profile содержит скрипт, который вызывается автоматически всякий раз, когда открывается приложение Terminal и запускается оболочка bash. Это то, что я в настоящее время написал в этом файле:Псевдонимы в .bash_profile не работают должным образом

PATH="/Library/Frameworks/Python.framework/Versions/2.7/bin:${PATH}" 
export PATH 

Это отлично работает. Тем не менее, я хочу, чтобы добавить псевдоним (справа внизу выше двух линий) следующим образом:

alias test='cd ..' 

Однако, когда я сохранить это и запустить терминал, я получаю следующее сообщение:

-bash: alias: ..": not found 

Замена одинарных кавычек на двойные кавычки не помогает и вообще не отнимает их. Любопытно, однако, следующий псевдоним работает:

alias c=clear 

Когда я печатаю с в терминал, он очистит экран, как и следовало ожидать. Однако, вместо того, чтобы, если я вошел в эту строку с кавычками в профиле Баш как:

alias c='clear' 

Тогда я получаю следующее, когда я вхожу с в Терминале:

-bash: 'clear': command not found 

Обратите внимание, что я не получаю сообщение об ошибке при запуске для этого псевдонима.

Что я делаю неправильно? Есть ли параметр, который мне нужно изменить где-нибудь, чтобы заставить псевдонимы работать правильно? Я видел предыдущие примеры псевдонимов, и они просто не работают для меня.

+1

Какой редактор вы используете, чтобы изменить файл? Если он использует что-то, что эквивалентно «умным кавычкам» Word, это объясняет это поведение. –

+1

Вы скопировали и ввели сообщения об ошибках (в частности, последние) прямо из подсказки терминала или повторно указали его? Если вы перепечатали, было бы полезно, если бы вы отправили маршрут копирования и вставки, чтобы мы могли проверить точные символы. –

+1

Кажется, что ваши цитаты смешные.Одинарная кавычка должна быть апострофом ASCII (ASCII 39), а не какими-то фигурными цитатами из фантазии shmancy. – tripleee

ответ

3

Файлы системы уровня пользователя должны содержать «обычный текст». Как установить/настроить это для вашего «редактора из-выбор» может варьироваться (я не использую Mac, так что я не очень поможет с этим.) Soo,

  1. создать свой профиль «из оболочка «присоединяя линии непосредственно, т.е. удалить» плохие линии, а затем:

    эхо „некоторые командная строка“ >> ~/путь/bash_profile

  2. использование „VI“ или „ВИМ“ ## должен be 'safe'

  3. просмотрите файл через:

    cat -v ~/path/bash_profle | больше ## см. любые «забавные символы»? или
    cat -ve ~/path/bash_profle | больше ## см. любые «забавные символы»? или

или

vi ~/path/bash_profle # then set 'control codes' to 'on' 
set list ## see any 'funny chars' for your 'quotes'? 
+0

Вариант 1 работает для меня. После того как я сделал это один раз, я смог продолжить редактирование и добавлять новые команды в .bash_profile непосредственно в TextEdit без дополнительных проблем. – zkurtz

+0

Какая кодировка является «простым текстом»? UTF-8? – BreadicalMD

+0

Проблема заключалась в кодировании текстового редактора. Когда я изменил файл в VI (OS X), и я сохранил его, он сработал! – Hous3aholik

3

Обертывание команды с двойной котировкой работала для меня. Я старался всеми возможными способами упоминать в этой теме, и никто из них не работал. Затем я заменил одну цитату на двойную, и это сработало.

alias mysql_start="sudo /path/to/server/mysql.server start" 
+0

Это сработало для меня. Странный. – kratos

0

Я это исправил, отредактировав свой .bash_profile в VIM или нано-то про текст редактируемого испортил его не знает, почему.

Я попытался отредактировать в блокноте только с помощью «open .bash_profile», однако что-то о неправильном переводе символов. Поэтому вам нужно либо «vim .bash_profile», либо «nano .bash_profile»

Выполнение этой задачи исправлено для меня.

+0

Привет, Иеремия, спасибо за ваш ответ, однако немного непонятно, что вы предлагаете. Не могли бы вы отредактировать свой ответ, чтобы выяснить, что такое «что-то» и что вы на самом деле отредактировали, чтобы решить проблему? –

2

Похоже, что оболочка не получает доступ к вашему .bash_profile при регистрации через терминал.

.bash_profile является конфигурационным файлом оболочки bash. При запуске оболочки bash команда будет выполнять команды в .bash_profile. Но есть много видов оболочек, а разные оболочки выполняют разные конфигурационные файлы.

Терминал - это программное обеспечение для приема пользовательского ввода, оболочка будет выполнять команды. Вы можете использовать cat /etc/shell для отображения допустимых оболочек. Например:

$ cat /etc/shell /bin/bash /bin/csh /bin/ksh /bin/sh /bin/tcsh /bin/zsh

Оболочка по умолчанию Баш оболочки на Mac OX. Но если вы установили zsh, оболочка по умолчанию - zsh, когда запуск оболочки zsh, оболочка обнаружит файл с именем .zshrc и выполнит команды в .zshrc.

Вы можете использовать echo $SHELL вы используете:

$ echo $SHELL /bin/bash

-> echo $SHELL /bin/zsh

Если по умолчанию оболочка ЗШ, .bash_profile больше не будет работать, obversely. Конфигурационный файл zsh равен .zshrc. И я думаю, ваша проблема в том, что ваша оболочка по умолчанию не является оболочкой bash. Например, если по умолчанию оболочка ЗШ, вы должны конфиг в `` .zshrc, просто добавьте

PATH="/Library/Frameworks/Python.framework/Versions/2.7/bin:${PATH}" export PATH

или другой конфигурации для ~/.zshrc.

Тогда source ~/.zshrc, и конфигурация будет работать немедленно.

4

Убийцей для меня было пространство и одинарные кавычки. alias test = "cd .." работал. Не помещайте пробелы между alias_name =

2

Для меня это не сработало в том же терминале. Мне пришлось открыть новый, чтобы он работал.

0

Что я понял, так это то, что у Mac есть опция для умных цитат и тире. alias ..='cd ../' отличается от alias ..=‘cd ../‘, где прежнее работает, но последнее - нет.

Смежные вопросы