Execute abaixo de set -x
para ver onde está o problema. O relatório de números de linha do Zsh parece estar fora de emulate -c
.
export PATH=/usr/local/bin:/usr/local/sbin:$PATH
Para conformidade com POSIX, você precisa de aspas duplas aqui, porque export
é analisado como um comando comum. Sem as aspas, $PATH
é dividido em palavras de acordo com o valor de IFS
e cada palavra é interpretada como um padrão de caractere curinga, como sempre acontece em shells no estilo Bourne (sem incluir zsh). Bash e ksh tratam export
especialmente e analisam o argumento como uma atribuição, e zsh não faz divisão variável a menos que seja explicitamente instruído, mas você não tem esse luxo no modo de emulação sh do zsh ou em traço.
Você pode usar qualquer um dos seguintes estilos:
export PATH="/usr/local/bin:/usr/local/sbin:$PATH"
export "PATH=/usr/local/bin:/usr/local/sbin:$PATH"
export PATH=/usr/local/bin:/usr/local/sbin:"$PATH"
Ou você pode deixar o export
. Exceto em shells antigos pré-POSIX Bourne, uma vez que uma variável esteja no ambiente, as atribuições alteram o valor no ambiente, você não precisa chamar export
novamente. Em uma tarefa, você não precisa usar aspas (mas você pode, se preferir).
PATH=/usr/local/bin:/usr/local/sbin:$PATH
Veja Quando é necessário fazer uma cotação dupla? mais da boa impressão de quando você pode sair sem aspas.