Перезагрузите файл ~ / .bash_profile из сценария оболочки

Я написал сценарий оболочки, который должен перезагрузить файл ~/.bash_profile , но он не работает. Вот код.

 echo 'export PATH=$PATH":$HOME/.bin"' >> ~/.profile mkdir ~/.bin cp passwrdgen ~/.bin chmod +x ~/.bin/passwrdgen . ~/.profile echo Done! 

  • Помощь с компиляцией bash из источника в пользовательском настраиваемом профиле env не читается
  • Как ввести тайм-аут для сценариев оболочки?
  • Как я могу идентифицировать свою систему после успешной загрузки. погода, это был крушение, или это было выключение или перезагрузка или что-то еще?
  • Комбинированные `mkdir` и` cd`?
  • Удаление непечатаемых символов из журналов ожидания?
  • Как использовать «rm! (* Keyword) в bash 4.1.2?
  • Почему удаленный Bash использует .bash_profile вместо .bashrc
  • Как обменивать целые html-блоки в нескольких файлах с помощью sed
  • Долларовая интерполяция знаков внутри кавычек в bash
  • Помогите понять сценарий bash
  • Как убедиться, что я использую последнюю версию bash?
  • Как извлечь строку между двумя \ n в файле
  • One Solution collect form web for “Перезагрузите файл ~ / .bash_profile из сценария оболочки”

    Как вы считаете, вы ожидаете, что PATH будет изменен вне подоболочки, в которой выполняется скрипт?

    Это не сработает. Когда вы экспортируете переменные, вы делаете это только для текущей оболочки .

    Ваш скрипт кажется прекрасным, попробуйте добавить строку, которая печатает PATH в нижней части экрана, чтобы убедиться:

     echo 'export PATH=$PATH":$HOME/.bin"' >> ~/.profile mkdir ~/.bin cp passwrdgen ~/.bin chmod +x ~/.bin/passwrdgen . ~/.profile echo "$PATH" echo Done! 
    Linux и Unix - лучшая ОС в мире.