Cos'è bash_profile e a cosa serve?
Grazie per A2A.
Credo che Anmol Vishwakarma abbia dato un'eccellente descrizione sull'argomento.
Solo per essere sicuri di mettere le cose in prospettiva:
- /etc/profile, ~/.bash_rc, e ~/.bash_profile, sono tutti file e sono chiamati script di configurazione. Possono contenere dichiarazioni di variabili, variabili di esportazione, comandi da eseguire al login come il controllo della posta o delle notizie, l'impostazione di umask, tra gli altri. Le cose tipiche che gli utenti fanno sono: aggiungere qualche dir a , esportare qualche variabile, cambiare , impostare i colori del display, aggiungere un messaggio di testo di saluto, ecc.
- Tutti questi file, tranne /etc/profile, sono di default nascosti, come indicato dal punto iniziale (quindi non è bash_profile ma in realtà .bash_profile).
- Quando si effettua il login (sia in locale che in remoto), questo è chiamato una shell di login, ed è trattato un po' diversamente dalla normale invocazione della shell. In questo caso, il file /etc/profile, se presente, viene eseguito, dopo di che viene eseguito o un file ~/.bash_profile o un file ~/.bashrc, in questo ordine.
- Per una shell interattiva, cioè quella con cui si può interagire, perché lo stdin e lo stderr della shell sono entrambi TTY, il file ~/.bash_profile non viene eseguito, ma il ~/.bashrc sì.
- Per una shell non interattiva, cioè quella con uno o entrambi gli stdin/stderr non è una TTY, non viene eseguito alcuno script di configurazione.
- In una shell di login, al logout, viene eseguito il file ~/.bash_logout, se presente.
- Come da POSIX, stderr (e non stdout) è il flusso che determina se una shell è interattiva. Se stderr viene reindirizzato, non è una shell interattiva, a meno che -i sia specificato nell'invocazione della shell. stdout non ha lo stesso effetto.