Depende muito de quando esses programas precisam ser executados e quando você precisa dos resultados. Se não importa quando eles são executados (ou seja, os resultados não variam com o tempo), talvez seja melhor executá-los a partir do ~/.profile
ou ~/.bash_profile
(ou seja, quando você faz login) do que do seu ~/.bashrc
.
Se você precisar de seus resultados, mas não puder esperar os 5 segundos que eles levam para executá-los, o que você fará nos primeiros 5 segundos que seu shell estiver funcionando? Você não pode executar nenhum comando que dependa das saídas desses programas, porque os resultados ainda não estarão disponíveis.
Acho que, se você descrever com mais detalhes exatamente quais são os requisitos, poderemos dar a você melhores respostas.
Tudo isso dito, você poderia lançar seus programas em segundo plano, como sugerido por Dennis Williamson, e fazer com que eles escrevessem seus resultados para alguns arquivos em seu diretório pessoal. Em seguida, você pode definir a variável bash PROMPT_COMMAND
para fornecer esses arquivos, o que o bash faria antes de cada exibição de PS1
.
Por exemplo, digamos que seu programa em segundo plano grave export ans=42
no arquivo ~/answer
quando estiver pronto. No seu ~/.bashrc
, coloque
PROMPT_COMMAND=". ~/answer"
Em seguida, toda vez que o shell exibir PS1
, primeiro ele acessará ~/answer
e seu ambiente eventualmente (por exemplo, 5 segundos após o início) conterá a variável ans
com o valor 42
.
Naturalmente, nos primeiros 5 segundos depois de iniciar o shell, ~/answer
conterá os valores do último tempo em que você iniciou um shell, então você precisa decidir se isso é importante ( e como redefinir esse arquivo, se necessário).