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" .