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.