Многое зависит от того, когда эти программы должны запускаться и когда вам нужны их результаты. Если не имеет значения, когда они запускаются (то есть их результаты не меняются со временем), то может быть лучше, чтобы они запускались из вашего ~/.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 будут содержать значения, которые использовались в последний раз при запуске оболочки, поэтому вам придется решить, важно ли это (и как сбросить этот файл при необходимости).