Para exportar o no exportar la variable bash PS1

Acabo de pasar mucho time leyendo sobre inicio de session y shells interactivos y por qué uno debería o no debería establecer variables de entorno, funciones de shell, etc. en los diversos files de perfil y bashrc. En esta publicación se mencionó que las cosas específicas de bash, como las opciones de request, deberían establecerse en ~ / .bashrc. Eso me llevó a preguntarme sobre la variable PS1. En todos los ejemplos que he visto con respecto a esto, tienen algo así como export PS1="" . ¿Debería exportarse realmente al medio ambiente ya que solo tiene significado para bash? Simplemente tener PS1="" en mi ~ / .bashrc produce el efecto deseado para mí, pero me pregunto si me está perdiendo algo.

Eso es correcto: PS1 solo tiene sentido en instancias interactivas de bash, por lo que debe establecerse en ~/.bashrc y no debe exportarse. PS1 también es significativo en otras shells, pero tiene un significado diferente, porque las expansiones rápidas difieren entre las shells. De hecho, incluso entre instancias de bash, PS1 puede tener diferentes significados, ya que el significado depende de las opciones del shell (al less promptvars ).

La export de PS1 al entorno desde .profile es un retroceso a la década de 1970, cuando solo había un shell que lo usaba (el shell Bourne) y no tenía un file de configuration. Todavía funciona hoy si siempre usa el mismo shell y nunca lo configura de manera diferente. Pero todas las shells modernas que no están diseñadas exclusivamente para scripts (csh, ksh, bash, zsh, …) leen un file de configuration cuando se inician de forma interactiva ( .cshrc , .kshrc , .bashrc , .zshrc , …), por lo que el método de los años setenta ya no es necesario. Establecer PS1 y otras configuraciones específicas del shell en un file específico del shell, y no exportarlo al entorno, evita romper cosas cuando usa una configuration de shell diferente o un shell diferente o un terminal diferente que no es capaz de mostrar su habitual pronta fanciness. Configurar PS1 en un file específico del shell funciona todo el time, mientras que configurarlo en .profile y exportarlo solo funciona en casos "simples", así que no hay razón para no hacerlo de la manera correcta, pero hay muchos malos tutoriales alnetworkingedor la web e incluso malas configuraciones pnetworkingeterminadas en las distribuciones. C'est la vie .