Eu tenho isso no meu arquivo de aliases e funciona:
alias bashrc='vim ~/.bashrc && source ~/.bashrc'
Por exemplo, tenho uma função no meu arquivo .bashrc
:
function open_bashrc() {
gedit ~/.bashrc
source ~/.bashrc
}
Assim, em qualquer lugar que eu esteja, se eu digitar open_bashrc
, ele abrirá o arquivo .bashrc
. Eu posso abri-lo e alterá-lo, mas depois de salvar e clicar em fechar, ele não executa a segunda etapa source .bashrc
. Em vez disso, tenho que digitar source ~/.bashrc
eu mesmo. Por quê? O que há de errado com a função?
Pode ser que, no seu contexto de execução, gedit
não seja resolvido como o programa executável gedit, mas como um shell script, função ou alias, que executa o gedit no background ? Caso contrário, não vejo razão, porque source não deve ser executado.
Na verdade, eu não usaria &&
, como sugerido por polvoazul. Esta solução teria o efeito de que o .bashrc é originado somente se o gedit retornar com o código de saída zero. Embora certamente devamos esperar que um programa bem-comportado saia com 0, se tudo correu bem, já vi mais programas que não se importam com os códigos de saída, e a página de manual do gedit silencia sobre o código de saída, que , tecnicamente, significa que o código de saída não é especificado. Isso não é algo que eu gostaria que minhas funções dependessem ....
Tags bash configuration linux terminal