Molto dipende da quando questi programmi devono essere eseguiti e da quando hai bisogno dei loro risultati. Se non importa quando corrono (ovvero, i loro risultati non variano con il tempo), allora potrebbe essere meglio farli funzionare dal tuo ~/.profile
o ~/.bash_profile
(cioè, quando accedi) piuttosto che dal tuo ~/.bashrc
.
Se hai bisogno dei loro risultati, ma non puoi aspettare i 5 secondi necessari per farli funzionare, cosa farai per i primi 5 secondi che la tua shell è attiva? Non è possibile eseguire comandi che dipendono dagli output di tali programmi, poiché i risultati non saranno ancora disponibili.
Penso che se descrivi più in dettaglio esattamente quali sono i requisiti, potremmo essere in grado di darti risposte migliori.
Detto questo, potresti lanciare i tuoi programmi in background come suggerito da Dennis Williamson, e farli scrivere i loro risultati su alcuni file nella tua home directory. Quindi è possibile impostare la variabile bash PROMPT_COMMAND
in modo che generi tali file, cosa che bash farebbe prima di ogni visualizzazione di PS1
.
Ad esempio, supponiamo che il tuo programma in background scriva export ans=42
nel file ~/answer
al termine. Nel tuo ~/.bashrc
, metti
PROMPT_COMMAND=". ~/answer"
Quindi, ogni volta che viene visualizzata la shell PS1
, verrà originariamente sorgente ~/answer
e il tuo ambiente alla fine (ad es. 5 secondi dopo l'avvio) conterrà la variabile ans
con il valore 42
.
Ovviamente, i primi 5 secondi dopo l'avvio della shell, ~/answer
conterranno i valori dell'ultima volta che hai avviato una shell, quindi dovresti decidere se è importante (e come reimpostare quel file se necessario).
profile
, ogni volta che viene creato un nuovo terminale. Grazie Apple.