Como armazenar setings

0

Eu fiz o meu .bashrc me dar dois tipos de prompts;

longp: xanth@X-VboxTux:~➤➤➤ e

shortp:

Eu fiz isso escrevendo um 0 ou um 1 em um arquivo e, em seguida, para determinar qual prompt deve ser mostrado se uma árvore else estiver na linha PS1.

então minha pergunta é ... Existe uma maneira melhor de armazenar um estado do que escrever um 0 ou um 1 em um arquivo?

código;

bashrcpl=$(<.bashrcpl)
if [ $bashrcpl = "0" ] || [ "$(whoami)" = root ]; then
    if [ "$color_prompt" = yes ]; then
        if [ "$(whoami)" = root ]; then
            PS1='${debian_chroot:+($debian_chroot)}\[3[0;31m\]\u\[3[0;32m\]@\[3[0;36m\]\h\[3[0;32m\]:\[3[01;34m\]\w\[3[0;31m\]➤\[3[1;31m\]➤\[3[0;32m\]➤\[3[01;34m\] '
        else
            PS1='${debian_chroot:+($debian_chroot)}\[3[1;31m\]\u\[3[0;32m\]@\[3[0;36m\]\h\[3[0;32m\]:\[3[01;34m\]\w\[3[0;31m\]➤\[3[1;31m\]➤\[3[0;32m\]➤\[3[01;34m\] '
        fi

    else
        PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
    fi
else
    PS1='${debian_chroot:+($debian_chroot)}\[3[0;32m\]➤\[3[01;34m\] '
fi

# Alias to turn short terminal prompt on or off
alias shortp='echo "1" > .bashrcpl & source ~/.bashrc &> /dev/null'
alias longp='echo "0" > .bashrcpl & source ~/.bashrc &> /dev/null'
    
por user3076944 19.02.2014 / 02:45

1 resposta

0

Qual a persistência dessa configuração?

Se você quer que ele persista no bash, reinicia e reinicia, então você tem que submetê-lo ao disco, então sua solução baseada em arquivos não é tão ruim assim.

Se você pode viver com alguma configuração padrão (por exemplo, sempre iniciar com prompt longo, mas pode mudar para um curto), então você pode modificar um pouco sua lógica: definir algumas variáveis (por exemplo, $ MY_PROMPT_TYPE) para o valor padrão no seu .bashrc / .bash_profile, defina a variável COMMAND_PROMPT (que é avaliada sempre que o bash mostrar um prompt) para definir PS1 com base no valor atual da variável $ MY_PROMPT_TYPE e defina dois aliases para alternar o MY_PROMPT_TYPE.

Para satisfazer seu requisito de persistência, você pode confirmar um novo valor padrão para a variável PROMPT_TYPE para .bashrc / .bash_profile toda vez que você alterná-lo, de forma semelhante ao que já está fazendo, mas sem precisar reler .bashrc - - seu COMMAND_PROMPT mudará o PS1 dinamicamente para você.

TL; DR: Mova seu "if / else / fi" para COMMAND_PROMPT, mova seu .bashrcpl para MY_PROMPT_TYPE em .bashrc / .bash_profile, reescreva os aliases de alternância.

    
por 23.06.2014 / 12:09