O resultado de uma substituição de comandos é dividido em palavras usando caracteres de IFS como separadores, a menos que a substituição do comando esteja entre aspas duplas. Assim, " ABC" é dividido em uma lista de palavras, que contém um elemento "ABC" . Use echo "$(echo " ABC")" para usar o resultado do comando susbtitution como uma string.
Ao contrário dos shells normais do tipo Bourne / POSIX, o zsh não trata as palavras resultantes da substituição de comandos como padrões globais: echo $(echo "*") imprime * , não uma lista de arquivos (a menos que a opção glob_subst esteja definida) . Além disso, ao contrário dos shells normais do tipo Bourne / POSIX, a divisão é executada apenas em substituições de comandos sem aspas, não em substituições de variáveis sem aspas, exceto que as palavras vazias resultantes de uma substituição de variável sem aspas são removidas.