Altera o prompt do PS1 em um subshell chamado de pai

2

Quando estou executando uma sessão bash interativa, às vezes experimento com sh .

Eu chamo sh diretamente desta sessão bash .

A minha pergunta é: como posso alterar o aviso PS1 desta sub-camada?

Eu gostaria que o prompt fosse algo como sh$ , notificando-me de que estou usando sh e não bash .

O que tentei até agora é:

  • Eu fiz um arquivo de configuração análogo a .bashrc named .shrc
  • eu coloquei apenas uma linha: export PS1='$(echo ${0})\$ '
  • Eu então modifiquei ~/.profile para dizer o seguinte:

    # if running bash
    if [ -n "$BASH_VERSION" ]; then
    # include .bashrc if it exists
        if [ -f "$HOME/.bashrc" ]; then
            . "$HOME/.bashrc"
        fi
    # if running another shell
    else
        if [ -f "$HOME/.shrc" ]; then
            . "$HOME/.shrc"
        fi
    fi
    
  • Eu reiniciei o terminal, mas as alterações não estão sendo aplicadas.

  • Se eu executar . ~/.shrc em sh manualmente, as alterações do serão aplicadas.

O que estou fazendo de errado?

    
por Stefan van den Akker 30.07.2014 / 13:20

1 resposta

1

Ele não fornecerá esse arquivo por padrão. Você pode direcioná-lo para fazer isso:

ENV=~/.shrc sh

Ou você pode adicionar:

alias sh="PS1='\
alias sh='ENV=~/.shrc sh'
\$ ' sh"

Para o arquivo de ambiente do seu shell usual. Isso poderia simplificar as coisas.

Ou até mesmo:

ENV=~/.shrc sh

Ainda assim, se você quiser declarar apenas uma variável para ela, definir explicitamente $PS1 na linha de comando, como no primeiro alias , é provavelmente o melhor caminho a seguir.

    
por 30.07.2014 / 13:40