Às vezes você vai querer transformar um alias em uma função, mas quando você fonte do arquivo bashrc, um erro estranho pode ocorrer, algo como isto:
. ~/.bashrc
bash: /home/username/.bashrc: line 38: syntax error near unexpected token '('
bash: /home/username/.bashrc: line 38: 'hello_world() {'
Isso acontece porque o nome do alias está em conflito com o nome da função recém-definida. Tanto quanto eu sei, para evitar este tem duas opções:
O primeiro método é usar exec bash
, a desvantagem aqui é que você perde seu ambiente:
bash-4.3 $
[1]: env_var="a value"
-----------------------------------------------------------------------
bash-4.3 $
[2]: echo $env_var
a value
-----------------------------------------------------------------------
bash-4.3 $
[3]: exec bash
-----------------------------------------------------------------------
bash-4.3 $
[1]: echo $env_var
-----------------------------------------------------------------------
Então, isso nos deixa com o segundo método, que é unalias tudo, então fonte do arquivo bashrc. Isso preserva nosso ambiente (com a exceção notável de aliases):
bash-4.3 $
[1]: unalias -a && . $HOME/.bashrc
Normalmente eu tenho isso como um alias no meu bashrc com o nome de reload.