Veja o que está acontecendo.
Primeiro, COLUMNS, como você deve saber, é uma variável que informa a largura da tela do terminal. Às vezes, o shell o define para você, portanto, configurá-lo com COLUMNS=
para obter o shell para atualizar o valor para o número real de colunas no terminal que ele detecta.
Em segundo lugar, este comando executa um zsh e processa o script:
env -i zsh -flc '. ~/cols.sh'
Terceiro, esse comando executa um shell diferente (o mesmo do qual ele é executado ou o valor de $ SHELL, acredito) e, em seguida, o processa; o =zsh
é praticamente ignorado:
env -i =zsh -flc '. ~/cols.sh'
Na verdade, isso faz parecer que o =zsh
pode realmente ter um efeito, mas não consigo ver como isso seria útil, pois não acredito que algum shell suporte um nome de variável de ambiente "vazio":
env -i =zsh env
A saída é =zsh
, o que implica que existe uma variável sem nome definido como zsh
.