Exportando variáveis ​​bash

Exportando variáveis ​​bash
Compreender variáveis ​​no shell Bash é essencial para trabalhar com o Linux de maneira profissional. É um dos principais requisitos para programação, além de alcançar a certificação do Instituto Profissional Linux (LPIC) Nível 1 [2].

O artigo publicado anteriormente de Fahmida Yesmin [4] oferece uma introdução maravilhosa em variáveis ​​de bash. Aqui, avançamos mais e explicamos como declarar variáveis ​​em Bash de tal maneira que você pode usá -las em outros ambientes em seu sistema Linux e quais efeitos colaterais correspondentes você deve levar em consideração.

Uma breve descrição de Bash

O Bash Shell foi lançado pela primeira vez em 1989 e foi usado como Shell de login padrão para a maioria das distribuições Linux. Brian Fox escreveu Bash como um shell e linguagem de comando unix para o projeto GNU como substituição de software livre para o shell de Bourne. É um acrônimo para Bourne novamente Shell. Bash é amplamente compatível com sh e incorpora recursos úteis da Shell Korn Ksh e a concha C csh [6].

Enquanto o sistema operacional GNU fornece outras conchas, incluindo uma versão de csh, Bash é o shell interativo padrão. Ele foi projetado com a portabilidade em mente e atualmente é executada em quase todas as versão do UNIX, além de outros sistemas operacionais [9].

Variáveis ​​de bash em poucas palavras

Variáveis ​​são componentes essenciais das linguagens de programação. Eles são referenciados e manipulados em um programa de computador. Simplificando, as variáveis ​​representam células de memória nomeadas. Isso é o mesmo em Bash, como em qualquer linguagem de programação. Isso torna possível para nós como humanos e usuários do computador para armazenar valores no "cérebro" do computador e encontrá -los novamente através do nome atribuído da variável.

O termo variável refere -se a uma forma combinada de duas palavras, eu.e., variar + capaz, o que significa que seu valor pode ser alterado e pode ser usado por várias vezes. Em contraste com isso, variáveis ​​que não podem ser alteradas são chamadas de constantes. [10]

Enquanto houver memória suficiente disponível para o seu script, você pode criar e usar livremente variáveis. Você pode simplesmente defini -los definindo um nome de variável e depois atribuindo seu valor. Um nome de variável no Bash pode incluir cartas, dígitos e sublinhados. Seu nome pode ser iniciado com uma carta e um sublinhado, apenas. Nomes de variáveis ​​válidos são de tamanho, tax5 e _tax20, mas não 5rules.

Um valor variável no Bash pode conter um número, um único caractere, uma sequência de caracteres ou uma lista de itens (chamados de matriz). Ele não possui um tipo de dados visível e o tipo de dados interno da variável será automaticamente descoberto (ou derivado) após a atribuição de um valor. Além disso, não há necessidade de declarar a variável - atribuir um valor à sua referência criará a variável automaticamente. O exemplo de script Bash abaixo demonstra isso para uma atribuição de string e uma atribuição de número numérico.

#! /BIN/BASH
WelComemessage = "Hello World!"
eco $ welComemessage
Preço = 145
eco $ preço

Convenções de nomenclatura de variáveis ​​Bash

Não há regras fixas para a ortografia de nomes de variáveis, apenas convenções. Essas convenções são usadas:

  • Nomes minúsculos - variáveis ​​locais para um script ou função.
    Não importa se o caso da Secretada inferior_Case/Snake [8], ou estilo de case de camelo [7]. O exemplo acima usa estilo de caixa de camelo.
  • Nomes de maiúsculas - constantes, variáveis ​​ambientais, variáveis ​​internas de concha.
    Lembre -se de que essas variáveis ​​já podem estar em uso por outros programas. Exemplos são $ Path, $ Lang, $ PWD, $ PS4 e $ Shell.

Para empresas globais de TI, é comum trabalhar com guias de estilo para garantir um estilo de codificação comum entre a empresa. Consulte o editorial do desenvolvedor para a IBM e o Guia do Estilo do Google [3] para obter mais informações sobre as convenções que seguem.

Visibilidade variável

O caso padrão é que uma variável está localmente ligada a uma estrutura, função, script ou processo e não pode ser acessada de fora dela. O exemplo abaixo mostra isso para a variável $ mensagem que pertence ao script e $ welcome que pertence à função outputWelComemessage ().

#!/BIN/BASH
# Defina uma mensagem variável para o script
mensagem = ”Olá, de novo!”
outputWelComemessage ()
# Defina uma variável local
Bem -vindo = ”Olá!”
eco $ bem -vindo

outputWelComemessage () # imprime olá!
eco $ mensagem # imprime olá, novamente!

Para garantir que uma variável previamente definida com o mesmo nome seja localmente ligada, use a palavra -chave local como demonstrado a seguir. Sem a palavra -chave local, a tarefa na linha 8 se relacionaria com a variável definida globalmente com o mesmo nome definido anteriormente.

#!/BIN/BASH
# Defina uma mensagem variável para o script
mensagem = ”Olá, de novo!”
outputWelComemessage ()
# Defina uma variável local com o mesmo nome
Mensagem local = ”Olá!”
eco $ mensagem

outputWelComemessage () # imprime olá!
eco $ mensagem # imprime olá, novamente!

Estendendo o escopo de uma variável

Para tornar uma variável interna visível para outros processos filhos, é necessário um passo adicional. Esta etapa é chamada de exportação de uma variável. Bash oferece o uso da exportação de palavras -chave seguida pelo nome da variável. A listagem abaixo demonstra isso para o backuppath variável.

$ backuppath = ”/opt/backup/”
$ export backupath

O comando de exportação é um shell embutido que é usado para definir a variável como aquela que subshells (conchas geradas do original) herdam. Variáveis ​​exportadas podem ser lidas e escritas por mais de um processo, então.

A segunda opção é declarar a variável como uma variável de ambiente desde o início. Você pode fazer isso usando a declaração de palavra-chave seguida pela opção "-x" (consulte [5] para obter mais informações sobre o comando declarar). O efeito é semelhante ao comando de exportação que foi introduzido antes.

$ declarar -x backuppath = ”/opt/backup/”

Herdar de outras sessões

Quando você executa um programa, ele herda automaticamente suas variáveis ​​de ambiente do processo pai. Por exemplo, se $ home for definido como /root no pai, a variável $ home da criança também será definida como /root.

Outros comandos

Entre outros, o Linux vem com comandos e opções úteis relacionados a variáveis. Os dois primeiros são chamados Env e Printenv. Eles listam todas as variáveis ​​de ambiente.

A imagem abaixo mostra a saída do comando ENV em um terminal executado em uma sessão x. Ele contém variáveis ​​como $ xterm (tipo de terminal), $ shell (o programa chamado no login e shows /bin /bash para o caminho para o intérprete de bash), $ ls_colors (as cores que estão em uso para destacar o arquivo diferente tipos ao ligar para ls) e $ desktop_session (o ambiente atual do X Desktop).

O terceiro e o quarto são opções do comando de exportação --p e -n. -P é abrevido para impressão e apenas exibe todas as variáveis ​​exportadas no shell atual usando o comando declara.

$ export -p
declarar -x desktop_session = "xfce"
declarar -x display = ": 0"
declarar -x glade_catalog_path = ":"
declarar -x glade_module_path = ":"
Declare -x GLADE_PIXMAP_PATH = ":"
declarar -x home = "/home/Frank"
declarar -x lang = "de_de.UTF-8 "

A opção -n é usada para despertar uma variável de ambiente. A listagem abaixo demonstra isso para a variável backuppath previamente definida.

$ export -n backupath

Conclusão

Bash é um ambiente muito inteligente, mas às vezes também um pouco complexo. Variáveis ​​controlam como as diferentes ferramentas interagem. Exportar variáveis ​​ajuda a se comunicar entre processos e é fácil de usar na vida cotidiana.

Sobre os autores

Jacqui Kabeta é um ambientalista, ávido pesquisador, treinador e mentor. Em vários países africanos, ela trabalhou nos ambientes de TI e ONGs.

Frank Hofmann é desenvolvedor, treinador e autor de TI e prefere trabalhar de Berlim, Genebra e Cidade do Cabo. Co-autor do livro de gerenciamento de pacotes Debian disponível no DPMB.org

Links e referências

  • [1] Programação Bash, Variáveis, https: // tldp.org/howto/bash-progintro-howto-5.html
  • [2] Linux Professional Institute Lpic-1, https: // www.LPI.Org/Our Certificações/Lpic-1-Overview
  • [3] Guia de estilo do Google Shell, nomes de variáveis, https: // google.Github.io/styleguide/shellguide.HTML#S7-NAMING-CONENTIONS
  • [4] FAHMIDA YESMIN: Como usar variáveis ​​na programação Bash, https: // linuxhint.com/variáveis-Bash-Programação/
  • [5] The Bash Hackers Wiki, https: // wiki.Bash-Hackers.org/
  • [6] The Bash, Wikipedia, https: // pt.Wikipedia.org/wiki/Bash_ (unix_shell)
  • [7] Case Camel, Wikipedia, https: // pt.Wikipedia.org/wiki/camel_case
  • [8] Case de cobra, Wikipedia, https: // pt.Wikipedia.org/wiki/snake_case
  • [9] O que é Bash. https: // www.gnu.org/software/Bash/manual/html_node/what-s-bash_003f.html
  • [10] Usando variáveis ​​em Bash https: // openSource.com/Artigo/19/8/Uso-Variables-Bash
  • Entendendo os elementos bash da programação https: // www.LinuxJournal.com/conteúdo/compreensão-e-elementos-programação
  • Variáveis ​​Bash https: // www.javatpoint.Com/Bash-variáveis