Por que o newgrp muda meu PS1 e como evitá-lo?

2

Eu tenho um PS1 personalizado para mostrar vários parâmetros. Quando mudo para um grupo diferente usando newgrp , ele mudou meu PS1 para o padrão ($) e isso é irritante. O padrão permanece mesmo quando eu voltar ao meu grupo padrão do grupo alterado.

Qualquer maneira de impedir isso e manter o PS1 que eu defini no meu .profile?

>uname -a
SunOS he2unx207 5.10 Generic_147440-19 sun4u sparc SUNW,Sun-Fire-880

É claro que, se eu utilizar meu .profile após newgrp, o PS1 será aplicado corretamente, mas estou incomodado porque o newgrp efetivamente cancela o que foi definido em .profile. Por que não pode simplesmente alterar o grupo efetivo ao qual estou associado sem alterar outras configurações?

    
por amphibient 04.10.2012 / 17:08

1 resposta

3

Se você exportar PS1 , o valor não deverá ser redefinido. Na página de manual newgrp do Solaris:

Any variable that is not exported is reset to null or its default value. Exported variables retain their values. System variables (such as PS1, PS2, PATH, MAIL, and HOME), are reset to default values unless they have been exported by the system or the user. For example, when a user has a primary prompt string (PS1) other than $ (default) and has not exported PS1, the user's PS1 will be set to the default prompt string $, even if newgrp terminates with an error. Note that the shell command export (see sh(1) and set(1)) is the method to export variables so that they retain their assigned value when invoking new shells.

Como alternativa, você pode passar o sinal - para newgrp para reinicializar o ambiente como se tivesse acabado de efetuar login.

    
por 04.10.2012 / 18:24