Подход к решению: sed или другие локальные процессы
Возможная проблема здесь: процесс, модифицирующий .bashrc, может завершиться сбоем, а затем .bashrc может быть поврежден.
Лучшее решение: source
внешний файл.
Предполагается, что приложение называется myapplication
и работает как пользователь user123
. Домашние каталоги ниже /home
, как, например, на. Linux (macOS: /Users
).
- Создать файл
~user123/.myapplicationrc
(разрешается в /home/user123/.myapplicationrc
). Положите все команды / конфиги для приложения здесь. Сделайте его как минимум читаемым для user123
(бит выполнения НЕ требуется).
- Добавьте эту строку в
~user123/.bashrc
(is /home/user123/.bashrc
) - лучше всего в конце файла: test -r ~/.myapplicationrc && . ~/.myapplicationrc
(Точка, пробел, а затем имя файла.)
- Дополнительно: в вашем коде установки проверьте, существует ли строка в
.bashrc
и добавьте ее, если пропустили: fgrep -q .myapplicationrc ~user123/.bashrc || echo 'test -r ~/.myapplicationrc && . ~/.myapplicationrc' >>~user123/.bashrc
Подробнее: Замена источника в ш
РЕДАКТИРОВАТЬ : используйте ~
вместо /home/...
. Это «расширение тильды» не работает в старых Bourne или Heirloom Shells. Но все современные оболочки, в том числе маленькие, например, Almquist Shell поддерживает это. На macOS он также работает нормально, но разрешается до /Users/...
.