Em bash
, sei que existem algumas maneiras de verificar se uma determinada variável está definida e contém um valor. No entanto, quero verificar se uma determinada variável existe no ambiente, e não simplesmente como uma variável local. Por exemplo ...
VAR1=value1 # local variable
export VAR2=value2 # environment variable
if [[ some_sort_of_test_for_env_var VAR1 ]]
then
echo VAR1 is in the environment
else
echo VAR1 is not in the environment
fi
if [[ some_sort_of_test_for_env_var VAR2 ]]
then
echo VAR2 is in the environment
else
echo VAR2 is not in the environment
fi
Como pode some_sort_of_test_for_env_var
ser definido para que o código bash acima faça com que as duas linhas a seguir sejam impressas?
VAR1 is not in the environment
VAR2 is in the environment
Eu sei que posso definir uma função shell para executar env
e fazer um grep
para o nome da variável, mas estou querendo saber se existe uma maneira mais direta "bash-like" para determinar se uma determinada variável está no ambiente e não apenas um variável local.
Agradeço antecipadamente.
Seu título e corpo são muito diferentes.
Seu título é impossível ou sem sentido. Todas as variáveis de ambiente no bash também são variáveis de shell, portanto, nenhuma variável de ambiente pode estar 'apenas' no ambiente.
Para o seu corpo
Se você deseja particularmente a
[[
sintaxeVocê pode gerar um novo shell e perguntar se a variável existe: