Многое зависит от того, когда эти программы должны запускаться и когда вам нужны их результаты. Если не имеет значения, когда они запускаются (то есть их результаты не меняются со временем), то может быть лучше, чтобы они запускались из вашего ~/.profile
или ~/.bash_profile
(то есть, когда вы входите в систему ), а не из вашего ~/.bashrc
.
Если вам нужны их результаты, но вы не можете ждать 5 секунд, необходимых для их запуска, что вы будете делать в течение первых 5 секунд, когда ваша оболочка работает? Вы не можете запускать какие-либо команды, которые зависят от результатов этих программ, потому что результаты еще не будут доступны.
Я думаю, что если вы опишите более подробно, какие именно требования, мы могли бы дать вам лучшие ответы.
Все это говорит о том, что вы можете запускать свои программы в фоновом режиме, как предложил Деннис Уильямсон, и попросить их записать свои результаты в некоторые файлы в вашем домашнем каталоге. Затем вы можете установить переменную bash PROMPT_COMMAND
для получения исходных файлов, что bash будет делать перед каждым отображением PS1
.
Например, допустим, что ваша фоновая программа записывает export ans=42
в файл ~/answer
когда это будет сделано. В вашем ~/.bashrc
положите
PROMPT_COMMAND=". ~/answer"
Затем каждый раз, когда оболочка отображает PS1
, она сначала получает исходный ~/answer
и ваша среда в конечном итоге (например, через 5 секунд после запуска) будет содержать переменную ans
со значением 42
.
Конечно, первые 5 секунд после запуска оболочки ~/answer
будут содержать значения, которые использовались в последний раз при запуске оболочки, поэтому вам придется решить, важно ли это (и как сбросить этот файл при необходимости).