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.