O script em questão destina-se a ser usado em qualquer shell compatível com POSIX, como ele mesmo diz:
# Should be usable by any POSIX-compliant shell (eg, ksh)
Os scripts nesta parte do OpenFOAM são simplesmente divididos em twain em scripts para shells e scripts C para shells em conformidade com POSIX. Esse script em particular faz muito pouco além de if
, [
, export
e unset
e não há nenhum problema de idiossincrasias de shell do Bourne Again.
A verdade simples é que a pergunta incorretamente declara
I'm just using bare-bones zsh
Na verdade, o questionador claramente tem um PROMPT
que imprime uma cruz vermelha se o status de saída do último comando for diferente de zero (como este de um tema powerline ). Claro que é diferente de zero para este script em particular, porque o último comando no script é:
[ "$BASH" ] && . $WM_PROJECT_DIR/etc/config.sh/bash_completion
Isso gera um status de saída diferente de zero para o script no shell Z, o que faz com que o prompt do questionador exiba o caractere vermelho. Ironicamente, essa verificação foi feita para garantir que o script corra alegremente com os shells Korn e Z; o que acontece, a cruz vermelha e o status de saída são problemas puramente cosméticos.
O uso de caracteres Unicode fora do padrão powerline private-use-area no prompt é uma indicação de que este não é o prompt do shell vanilla Z em ação aqui.
Leitura adicional
- StephanG (2017-07-27). Sourcing bashrc usando o shell ksh em 5.0 . Bug 2636. A Fundação OpenFOAM.
- Henry Weller (2017-07-27). etc / bashrc: Atualizado para suportar o ksh e o zsh . OpenFOAM / OpenFOAM-5.x GitHub.
- Por que esses caracteres especiais não são exibidos no meu prompt?