A primeira linha, o shebang, indica apenas que, se o script for executado diretamente, ele será executado usando o bash. Nada impede que você o execute usando zsh:
zsh admin.sh
Eu não sei porque o autor pensou em testar o zsh, mas eles fizeram. Esta seção de código é para zsh e não será executada no bash:
emulate sh
NULLCMD=:
# Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
# is contrary to our usage. Disable this feature.
alias -g '${1+"$@"}'='"$@"'
setopt NO_GLOB_SUBST
% bl0ck_qu0te%
Essa é uma questão muito ampla. Não vou explicar todas as diferenças de zsh e bash - leia a documentação de ambos para isso. Para o ponto específico de alias -g
, zsh tem aliases globais . No bash, os aliases são substituídos apenas no início da linha. Em zsh, alias -g
define aliases globais que são substituídos em toda a linha.
Então, em zsh, se eu fizer isso:
alias -g foo=bar
E, em seguida, execute:
echo foo
A saída será:
bar