Если Вы хотите отредактировать источник стандартных пакетов и скомпилировать их сами, необходимо использовать ABS (Система сборки Дуги). Заключенный в кавычки из Дуги Linux Wiki:
Система сборки Дуги, ABS, если коротко, является подобной портам системой для создания и упаковки программного обеспечения от исходного кода. В то время как pacman является специализированным инструментом Arch для двоичного управления пакетом (включая пакеты, созданные с ABS), ABS является набором инструментов для компиляции источника в устанавливаемые .pkg.tar.gz/.pkg.tar.xz пакеты.
Это - рекомендуемый метод при использовании Дуги Linux.
Хорошо я выяснил, как сделать это. В .bashrc просто сделайте:
export HELLO_WORLD=$(source bash_script.sh)
Сценарий выполняется неинтерактивной оболочкой, в то время как .bashrc
автоматически создается только интерактивными оболочками.
Однако есть способ запустить бесконечный цикл. Каждая оболочка bash
, интерактивная или нет, проверяет, установлена ли переменная BASH_ENV
, и, если да, использует ее значение в качестве имени исходного файла. В этом случае выполнение сценария bash
из этого файла приведет к бесконечному циклу, поэтому его необходимо использовать. Однако на практике этот сценарий (как следует из его названия) просто использовал бы для установки переменных среды для использования оболочкой, а не для выполнения произвольного кода.
Поместите это как строку 1:
[ -z "$PS1" ] && return # If not interactive, exit
Вам не нужно ничего делать. Простой запуск сценария bash не приведет к вызову вашего .bashrc
.
Ваш .bashrc
будет вызван только в том случае, если bash является интерактивным. Когда вы запускаете сценарий, он не является интерактивным.
Из справочной страницы bash:
Интерактивная оболочка запускается без аргументов, не являющихся параметрами, и без параметра -c , стандартный ввод и ошибка которого связаны с терминалами (как определение - {{ 1}}, добытый isatty (3)), или запускаемый с параметром -i. PS1 установлен, а $ - включает i, если bash является интерактивным, что позволяет сценарию оболочки или файлу запуска проверить это состояние .
Важным здесь является «запуск без аргументов, не являющихся опциями». Когда вы запускаете сценарий, первым аргументом bash является путь к этому сценарию. Таким образом, он не имеет аргументов и не является интерактивным.
source bash_script.sh
в Вашем.bashrc
– HalosGhost 11.05.2014, 05:38