Eu fiquei bastante prolífico com o uso dos aliases, especialmente com todos os diferentes comandos git e sua ordem e interdependências, etc. Então, eu criei um alias que executam scripts mais complexos.
alias stash='f() { .... }; f'
Acima de tudo muito direto. No entanto, como um pouco mais puro no meu estilo de desenvolvimento, eu gosto de código "bem formatado". A forma às vezes é tão importante quanto a função. Então, com um simples apelido:
alias gca='git commit --amend '
Não tenho problema em listá-los diretamente no arquivo .bash_aliases
. Mas para alguns dos aliases de multi-comandos eu gostaria que eles fossem separados.
Digitando help
eu vejo
function name { COMMANDS ; } or name () { COMMANDS ; }
mas a única maneira que eu atualmente compreendo usando o function
é sob o disfarce de um alias. Mas, dada a colorização de git diff --name-status
post que comentei, posso incorporar um script em um arquivo SH e, para esse exemplo, passei os dados para ele via xargs.
Mas é possível (provavelmente) criar "funções" por meio de um script, então, em vez de elas serem listadas como "alias", elas foram listadas como uma função real armazenada em um arquivo sh?
hipotético:
alias stash='f() { if [[ -z $1 ]]; then git stash list; else git stash $1; fi; }; f'
em vez disso, um arquivo stash.sh
teria:
function stash
{
if [[ -z $1 ]]; then
stash list;
else git stash $1;
fi;
}
é algo assim possível, então em ambos os casos eu simplesmente digitaria "stash" no prompt, mas como eles são definidos é bem diferente?