Não há muita diferença no resultado para comandos externos. A execução de env
envolve apenas um exec
adicional para fazer a análise de atribuição de variável que, de outro modo, o shell faria. env -i
seria mais útil, pois limpa o ambiente, o que não é fácil de fazer no shell.
Em ambos os casos, expansões como as substituições de comandos VAR=$(somecmd)
executadas pelo shell antes das atribuições acontecerem, e ambos os casos seguem PATH
etc. A única diferença que posso fazer é com o valor do _
, que Bash se ajusta ao nome do comando que ele executa ( mas env
não). Obviamente, sem env
, você também pode executar a versão integrada do shell do comando.