Значение `export PATH = …` в .bash_profile

Я использую mac уже несколько лет, и когда я в настоящее время изучаю рубин на рельсах, мне казалось, что я должен больше узнать о системе, которую я использую. Я посмотрел ~/.bash_profile , он выглядит так:

 PATH="/Users/nikolajandersen/.apportable/SDK/bin:$PATH" [[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm" # Load RVM$ # 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 export PATH=/usr/local/bin:$PATH export PATH=/usr/local/bin:$PATH 

Я совершенно новичок в этом и пытался сделать свой путь, хотя это все еще есть вопросы. Первый из них: поскольку существуют две одинаковые строки export PATH=/usr/local/bin:$PATH , я попытался удалить их. В результате такие команды, как nano и ls, больше не работали. Я вернул изменения, но я не понимаю, почему он должен был заявить два раза.

Другой вопрос: почему он иногда $ PATH, а иногда просто PATH без $? Почему -s "$HOME/.rvm/scripts/rvm" стоит в [[]] брекетах? И что делает export PATH ?

Может быть, кто-то может направить меня к легкому пониманию руководства / учебника / книги, где я мог бы все это узнать?

Update Это результат вывода echo $PATH

 /usr/local/bin:/usr/local/bin:/Library/Frameworks/Python.framework/Versions/3.3/bin:/Users/nikolajandersen/.rvm/gems/ruby-2.0.0-p353/bin:/Users/nikolajandersen/.rvm/gems/ruby-2.0.0-p353@global/bin:/Users/nikolajandersen/.rvm/rubies/ruby-2.0.0-p353/bin:/Users/nikolajandersen/.rvm/bin:/Users/nikolajandersen/.apportable/SDK/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/opt/sm/bin:/opt/sm/pkg/active/bin:/opt/sm/pkg/active/sbin 

Кажется, вы были правы с новой линией. Я снова удалил строку и убедился, что в конце есть пустая строка. Теперь команды все еще работают.

PATH before = – это имя переменной, и комбинация сообщает bash чтобы сохранить материал за переменной = в переменной.
$PATH – это значение переменной PATH до тех пор.

Комбинация PATH="some_path_to_stuff:$PATH" расширяет переменную PATH. В bash это разделенный двоеточие (:).


Что касается двойного добавления /usr/local/bin , я могу только догадываться, что вторая версия не имеет новой строки после нее (и находится в конце файла). В принципе это должно дать вам PATH, который начинается с /usr/local/bin:/usr/local/bin:.... Вы можете проверить это с помощью

 echo $PATH 

И если есть только один раз /usr/local/bin тогда выполните:

 echo "" >> ~/.bash_profile 

и войдите в систему, попробуйте снова напечатать $PATH .