export VARIABLE_NAME='some value'
é o caminho para 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ê pode usar export VARIABLE_NAME
para torná-la uma variável de ambiente sem alterar seu valor.
Pré-POSIX Bourne shells não suportam isso, e é por isso que você verá scripts que evitam export VARIABLE_NAME='some value'
e use VARIABLE_NAME='some value'; export VARIABLE_NAME
. Mas as cápsulas 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. Ao contrário de sh, setenv VARIABLE_NAME
. setenv
não existe em sh, e csh é extremamente raramente usado em scripts e foi ultrapassado pelo bash para uso interativo nos últimos 20 anos (e zsh por mais tempo), então você pode esquecê-lo a menos que você o encontre.
O comando env
é muito raramente útil, exceto em linhas shebang . Quando invocado sem argumentos, ele exibe o ambiente, mas export
o faz melhor (classificado e frequentemente cotado para desambiguar novas linhas em valores de novas linhas que separam valores. Quando invocado com argumentos, ele executa um comando com variáveis de ambiente extras, mas o o mesmo comando sem env
também funciona ( VAR=value mycommand
runs mycommand
com VAR
definido como value
, assim como env VAR=value mycommand
). O motivo env
é útil na linha shebang porque ele executa PATH
lookup, e acontece de não fazer mais nada quando invocado com um nome de comando.O comando env
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.