A sintaxe $()
é chamada substituição de comandos e o shell a trata primeiro executando o comando dentro dos parênteses, em seguida, atribuindo seu stdout (com novas linhas finais removidas) para x1
.
Em outras palavras, o comando é executado antes mesmo de você echo "$x1"
.