Como resolver problemas com variáveis ​​de ambiente não sendo definido em um script bash

Como resolver problemas com variáveis ​​de ambiente não sendo definido em um script bash

Variáveis ​​de ambiente são usadas para modificar o comportamento de um ambiente. Essas variáveis ​​podem mudar como o software ou o aplicativo funciona. A configuração de variáveis ​​de ambiente possui várias aplicações em bash. Essas variáveis ​​podem ser usadas para armazenar qualquer coisa.

Além disso, todo sistema possui certas variáveis ​​de ambiente que ele usa ao interagir com o usuário. Neste artigo, examinaremos o básico dos scripts de bash e configuraremos e manipularemos variáveis ​​de ambiente e depois passarmos por alguns remédios para os problemas associados.

Bash scripts

No Ubuntu, quase todas as tarefas podem ser executadas usando a interface gráfica do usuário ou o shell da linha de comando. Algumas tarefas são feitas com mais facilidade usando o shell em vez da GUI. Scripts são arquivos que consistem em comandos. Todos esses comandos são executados quando o arquivo de script é executado. Scripts bash são scripts que usam o intérprete de bash.

A extensão dos scripts é .sh. Scripts podem ser escritos usando qualquer editor de texto. Cada script bash começa com a linha #!/Bin/Bash, que diz ao sistema para usar o intérprete Bash.

variáveis ​​ambientais

As variáveis ​​ambientais têm as propriedades da localidade do processo, herança e sensibilidade ao caso. Localidade de processo significa que as variáveis ​​de ambiente são exclusivas da instância específica do shell, a menos que especificado de outra forma. Herança refere-se à relação pai-filho entre vários ambientes.

A sensibilidade ao caso, como o nome indica, significa que as variáveis ​​ambientais são sensíveis às mudanças de caso. Geralmente, o formato de variáveis ​​de ambiente depende de seu sistema pai. No entanto, todas as variáveis ​​ambientais têm dois recursos em comum; nome variável e valor armazenado.

O nome da variável pode ser qualquer coisa, mas o valor deve estar no formato compatível com o tipo de variável de ambiente. Isso é especialmente importante ao lidar com as variáveis ​​de ambiente criadas pelo sistema. Por exemplo, a variável de ambiente Lang é responsável por selecionar o idioma que o aplicativo usa para se comunicar com o usuário. Seu valor é dependente do local, mas normalmente nos EUA, terá o valor “en_us.UTF-8 ”.

Manipulação de variáveis ​​de ambiente

Existem vários utilitários gráficos para procurar, configurar e editar variáveis ​​de ambiente, mas neste artigo, estaremos analisando como lidar com essas variáveis ​​na linha de comando Bash.

Para criar uma nova variável de ambiente, você pode usar o comando de exportação. Existem várias maneiras de criar uma variável de ambiente. Você pode definir a variável primeiro e depois exportá -la. Criaremos a variável nomeada editora com o Value Nano (editor de texto) e depois exportá -lo.

$ Editor = nano
$ editor de exportação

A outra maneira de criar as variáveis ​​do ambiente é defini -las no próprio comando de exportação.

$ editor de exportação = nano

Se você pretende usar espaços no valor, precisará usar citações duplas enquanto cria a variável de ambiente como mostrado:

$ export var = “meu valor”

Os valores das variáveis ​​de ambiente podem ser acessados ​​usando o comando Echo seguido pelo nome da respectiva variável com um sinal de dólar.

$ echo $ var

Você também pode usar o comando printenv para obter o valor de qualquer variável de ambiente.

$ printenv var

Questões relacionadas a variáveis ​​de ambiente

Ao definir variáveis ​​de ambiente em scripts de bash, os problemas comuns estão relacionados à relação entre pais e filhos de conchas. A solução para tais problemas é definir as variáveis ​​no ambiente dos pais. Como vimos anteriormente, normalmente, as variáveis ​​de ambiente são temporárias e exclusivas para a instância do Shell em que são criadas; No entanto, também podemos definir variáveis ​​de ambiente que são persistentes e disponíveis para outros usuários.

Se você deseja criar uma variável de ambiente que seja permanente apenas para seu uso, você terá que editar o .Arquivo Bashrc. Está localizado no diretório /home /usuário. Você pode adicionar uma variável de ambiente var na .Arquivo BashRC executando os seguintes comandos:

$ nano/home/usuário/.Bashrc

Agora, usamos o editor de texto Nano para modificar o conteúdo do arquivo Bash.

exportar var = "minha variável permanente"

Para aplicar as alterações em sua sessão atual, obtenha o .Arquivo Bashrc usando o seguinte comando:

$ fonte .Bashrc

A variável Var estará disponível para todas as instâncias do shell executado pelo usuário atual.

No entanto, se você deseja criar uma variável de ambiente disponível para todos os usuários, precisará incluí -lo no arquivo /etc /ambiente. Por exemplo, podemos adicionar uma variável de ambiente global ao arquivo /etc /ambiente, executando os seguintes comandos:

$ nano /etc /ambiente

Como fizemos antes com o .Arquivo Bashrc, agora editamos o conteúdo do arquivo de ambiente.

export global = "Esta é uma variável global."

Obter o arquivo de ambiente para aplicar as alterações digitando o seguinte comando:

$ fonte /etc /ambiente

Se você deseja criar uma variável de ambiente que armazena o resultado de um comando executado em um script Bash, você precisará usar a substituição de parâmetros. O formato geral de substituição de parâmetros envolve o uso do comando de exportação seguido pelo comando com um sinal de dólar envolto entre colchetes, como mostrado:

$ export var = $ ()

Por exemplo, se você deseja armazenar sua variável de ambiente de shell em outra variável myshell, poderá usar o seguinte comando:

$ export myshell = $ (echo $ shell)

Conclusão

Neste artigo, passamos pelo básico de scripts e variáveis ​​ambientais. Além disso, entendemos como manipular as variáveis ​​do ambiente, alguns problemas típicos relacionados à criação dessas variáveis ​​em scripts de bash e como remedi -los.