env VAR = comando VAL ou VAR = comando VAL [duplicado]

0

Qual é realmente a diferença entre:

env VARIABLE=VALUE command

e

VARIABLE=VALUE command

em shells compatíveis com bash?

Nota: já fiz alguns testes e não vi diferença

Editar: Um exemplo seria

EDITOR=nano visudo

vs

env EDITOR=nano visudo
    
por Gray K 10.04.2018 / 14:12

1 resposta

1

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.

    
por 10.04.2018 / 14:53