export VARIABLE_NAME='some value'é a forma de definir uma variável de ambiente em qualquer shell compatível com POSIX ( sh, dash, bash, ksh, etc .; também zsh). Se a variável já tiver um valor, você poderá usá export VARIABLE_NAME-la para torná-la uma variável de ambiente sem alterar seu valor.
Os shells Bourne pré-POSIX não suportam isso, e é por isso que você verá scripts que evitam export VARIABLE_NAME='some value'e usam VARIABLE_NAME='some value'; export VARIABLE_NAME. Mas as conchas Bourne pré-POSIX são extremamente raras hoje em dia.
setenv VARIABLE_NAME='some value'é a sintaxe csh para definir uma variável de ambiente. setenvnão existe no sh, e o csh é extremamente raramente usado em scripts e foi superado pelo bash para uso interativo nos últimos 20 anos (e no zsh por mais tempo), para que você possa esquecê-lo, a menos que o encontre.
O envcomando raramente é útil, exceto nas linhas shebang . Quando invocado sem argumentos, ele exibe o ambiente, mas exportmelhora (classificado e frequentemente citado para desambiguar novas linhas em valores e novas linhas que separam valores). Quando invocado com argumentos, ele executa um comando com variáveis de ambiente extras, mas o mesmo comando sem envtambém funciona ( VAR=value mycommandé executado mycommandcom VARset para value, assim como env VAR=value mycommand). O motivo envé útil na linha shebang é que ele executa a PATHpesquisa e, por acaso, não faz mais nada quando chamado com um nome de comando. O envcomando pode ser útil para executar um comando com apenas algumas variáveis de ambiente com-i, ou sem parâmetros para exibir o ambiente, incluindo variáveis com nomes inválidos que o shell não importa.
VAR=asdfatualiza o ambiente seVARjá estava no ambiente. (Isso não era verdade na concha original de Bourne.)