Значение `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 

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

  • Что означает выход 99?
  • Как я могу искать имя дикой карты во всех подпапках?
  • Сценарий оболочки выдает неполадку при запуске из файла sh. Но если ввести вручную, то команды работают
  • Метафора для концепции оболочки?
  • Синтаксис Ошибка рядом с Неожиданным токеном в определении функции bash
  • Bash while loop читает из списка путей, разделенных двоеточиями, используя IFS
  • Как я могу увидеть, какая команда была фактически запущена в оболочке, через псевдоним или функцию
  • Что определяет, как необходимо отделить аргументы программы?
  • One Solution collect form web for “Значение `export PATH = …` в .bash_profile”

    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 .

    Linux и Unix - лучшая ОС в мире.