Qual é o erro de sintaxe neste arquivo? Eu não posso identificá-lo.
set-k8s-azure() {
export KUBECONFIG=~/.kube/config.azure-1
}
set-k8s-minikube() { export KUBECONFIG=~/.kube/config.minikube }
minikube() {
if [[ $@ == start* ]]; then
set-k8s-minikube
fi
command minikube "$@"
}
alias pulr='if output=$(git status --porcelain) && [ -z "$output" ]; then git pull --rebase; else git stash save "pulr WIP saved" && git pull --rebase && git stash pop; fi'
alias vi=nvim
source ~/.bash_aliases
produz:
bash: /home/niel/.bash_aliases: line 1: syntax error near unexpected token `('
bash: /home/niel/.bash_aliases: line 1: `set-k8s-azure() { '
Acredito que o erro de sintaxe esteja aqui:
A
{...}
construção precisa de uma nova linha ou;
antes do final}
:Além disso, aconselho que você use
$HOME
em vez de~
em scripts, em parte porque serve como documentação e em parte porque$HOME
se comporta como uma variável~
, mas não (consulte Por que o til (~) não se expande entre aspas duplas? ).Traços não são válidos em nomes de funções. (Para obter mais detalhes, consulte Existem problemas com hífens em funções, aliases e executáveis? ) O Bash é normalmente tolerante a certos caracteres inválidos, mas em alguns casos não é, e não tenho ideia do porquê, embora já tenha visto isso antes . Portanto, substitua os traços por sublinhados (e adicione um ponto e vírgula como Kusalananda disse) e tudo ficará bem: