/usr/bin/env seguido do nome de um programa executa esse programa. Ele procura o nome do programa como um arquivo executável nos diretórios configurados pela variável de ambiente PATH . É um caso especial do uso de env : env é seguido por algumas atribuições de variáveis de ambiente e, em seguida, um nome de programa e argumentos - aqui acontece de haver zero atribuições de variáveis.
/usr/bin/env echo … é equivalente a /bin/echo … , exceto pelo fato de não codificar o caminho para echo - dependendo do sistema e do valor de PATH , pode ser /bin/echo , /usr/bin/echo , /usr/xpg4/echo , /usr/ucb/echo , /usr/local/bin/echo , /home/bob/bin/echo ,…
Quase todo shell tem um comando echo embutido. Pode haver diferenças de comportamento entre o shell embutido e o comando externo. Na prática, há variações entre os comandos echo em dois aspectos: o que acontece se o primeiro argumento começar com - (algumas versões de echo processam algumas opções) e como uma barra invertida é processada (algumas versões imprimem literalmente, outros o tratam como um personagem de escape). Portanto, forçar uma versão de echo é útil ocasionalmente, quando você deseja usar esse comportamento dependente da implementação. Na maioria dos casos, é melhor usar printf - printf pode fazer tudo o que o echo pode fazer e é portátil, exceto para antiguidades.
Com os argumentos passados em seu código de exemplo, a escolha de uma implementação de eco não importa. Se houver um ponto para essa loucura, seria necessário muito mais contexto para descobrir.