5 votes

Pourquoi le fichier ~/.zprofile est toujours extrait lors de chaque session interactive ?

À partir du document zsh, ~/.zprofile ne doit être utilisé qu'au moment de la connexion au shell, et ne doit PAS être utilisé à chaque session interactive (par exemple, un nouvel onglet dans un terminal).

  • J'utilise MacOS Big Sur 11.2.3 (20D91).

Mais je peux confirmer que mon ~/.zprofile est généré à chaque session interactive (un nouvel onglet). Comment cela se fait-il ? S'agit-il d'un bug ? Comment mettre fin à ce comportement incorrect ?

11voto

nohillside Points 82672

Chaque onglet du Terminal est une session de connexion sur MacOS par défaut. Vous pouvez exécuter w pour voir que chaque onglet/tty exécutant un shell a un nom de processus commençant par - qui lui est attaché (ce qui indique un shell de connexion).

Informations supplémentaires (liées à bash mais il en va de même pour les autres coquilles).

PS : Si je me souviens bien, nous avons un Q&A qui donne encore plus de détails sur ce sujet, y compris une justification. pourquoi MacOS considère chaque fenêtre/onglet de Terminal comme un shell de connexion. Je ne l'ai pas encore trouvé cependant...

1 votes

Merci beaucoup pour votre réponse. Je l'ai votée. C'est très malheureux Puis-je changer ce comportement d'une manière ou d'une autre ? J'ai quelques scripts lourds à charger dans .zprofile, cela fait que chaque nouvel onglet prend beaucoup de temps

0 votes

PS : Puis-je mettre ces scripts lourds à charger ailleurs pour qu'ils ne soient chargés qu'une fois après la connexion ? Merci.

0 votes

@sgon00 En fonction de ce que font ces scripts et de la manière dont vous pouvez détecter le fait qu'ils ont déjà été exécutés, vous pourriez simplement vérifier cela dans .zprofile.

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X