Re: fichier de démarrage bash

トップ ページ

このメッセージに返信
著者: Frédéric
日付:  
To: guilde
題目: Re: fichier de démarrage bash
On Saturday 11 November 2006 09:35, Habib Bouaziz-Viallet wrote:

> Quel fichier de démarrage est lu par bash ? .bashrc, bash_profile ? Sur
> ma machine, il semblerait que .bash_profile ne soit pas lu. Il faut que
> je fasse . ./bash_profile


Tout est expliqué dans la page de manuel de bash, à la
section 'INVOCATION'. En gros, les fichiers lus au démarrage dependent de
la façon dont le shell est appelé (interactif, login...).

INVOCATION
       Un shell est dit de connexion (Ndt : login shell) si le premier
       caractère de son argument numéro zéro est un  -,  ou  s'il  est
       invoqué avec l'option -login.


       Un  shell  est  interactif  si son entrée standard et sa sortie
       d'erreur sont toutes deux connectées à un  terminal  (déterminé
       par  la  fonction isatty(3)), ou s'il est invoqué avec l'option
       -i.  Le paramètre PS1 est positionné, et le paramètre  $-  con-
       tient  la  lettre  i si bash est interactif, ce qui permet à un
       script ou à un fichier  de  démarrage  de  vérifier  l'état  du
       shell.


       Le  paragraphe suivant décrit comment bash exécute ses fichiers
       d'initialisation.  Si l'un de ces fichiers  existe  mais  n'est
       pas accessible en lecture, bash signale une erreur.  Les tildes
       sont remplacées par des noms de fichiers comme décrit  dans  le
       paragraphe  Développement du Tilde de la section Développement.


       Lorsque bash est lancé comme shell de connexion interactif,  ou
       comme  shell  non-interactif  avec  l'option --login, il lit et
       exécute tout d'abord les commandes se trouvant dans le  fichier
       /etc/profile  s'il  existe.   Après  lecture  de ce fichier, il
       recherche ~/.bash_profile, ~/.bash_login, et  ~/.profile,  dans
       cet ordre, et exécute les commandes se trouvant dans le premier
       fichier existant et accessible en lecture.   L'option  --nopro-
       file  peut être utilisée au démarrage du shell pour empêcher ce
       comportement.


       Lorsqu'un shell de connexion se termine, bash  lit  et  exécute
       les commandes du fichier ~/.bash_logout, s'il existe.


       Quand un shell interactif démarre sans être un shell de connex-
       ion, bash  lit  et  exécute  les  commandes  se  trouvant  dans
       ~/.bashrc  s'il  existe.   Ce  comportement  peut être inhibé à
       l'aide de l'option --norc.  L'option --rcfile  fichier  forcera
       bash  à  exécuter  les  commandes  dans fichier plutôt que dans
       ~/.bashrc.


       Quand bash est démarré de manière non-interactive, pour  lancer
       un  script shell par exemple, il recherche la variable BASH_ENV
       dans l'environnement, développe son contenu si elle existe,  et
       considère  cette  valeur  comme  le  nom d'un fichier à lire et
       exécuter.  Bash se comporte comme si la  commande  suivante  se
       trouvait en début de script :
              if [ -n "$BASH_ENV" ]; then . "$BASH_ENV"; fi
       mais  la  valeur  de  la  variable PATH n'est pas utilisée pour
       rechercher le fichier.


--
Frédéric

http://www.gbiloba.org