'sourcing' do prompt do bash

2

Eu tenho um pequeno script que define meu sistema proxy de uma vez, ele chama gconftool-2, define um proxy em ~ / .ssh / config e define o proxy para apt. Isso tudo é relativamente simples. O problema real vem da atualização das minhas sessões de bash.

É possível executar um comando a partir do prompt ($ PS1, $ PROMPT_COMMAND, até mesmo inserir um comando) - mas estes são todos executados como comandos separados - e, portanto, não têm influência sobre o meu ambiente atual. Em vez de executar esses comandos, gostaria de procurá-los.

Mesmo isso não funciona:

export PS1="\$(source /etc/profile.d/proxy.sh)$ "

Eu entendo por que isso não funciona (eu acho), mas como posso contornar isso?

obrigado Mark

    
por plof 28.06.2010 / 23:42

1 resposta

2

O motivo pelo qual você mostra não funciona, como você deve ter suspeitado é que o $() cria um subshell. As alterações dentro de uma subcamada não persistem para o pai e, como você diz, não têm influência sobre o ambiente atual. No entanto, PROMPT_COMMAND pode fazer o que você deseja sem criar um subshell:

export PROMPT_COMMAND='source /etc/profile.d/proxy.sh'
    
por 29.06.2010 / 07:07