Programação BASH

Exportando Variáveis ​​Bash

Exportando Variáveis ​​Bash
Compreender as variáveis ​​no shell Bash é essencial para trabalhar com Linux de maneira profissional. É um dos principais requisitos para programação, bem como para alcançar o Linux Professional Institute Certification (LPIC) Nível 1 [2].

O artigo publicado anteriormente por Fahmida Yesmin [4] oferece uma introdução maravilhosa às variáveis ​​Bash. Aqui, damos um passo adiante e explicamos como declarar variáveis ​​no Bash de forma que você possa usá-las em outros ambientes em seu sistema Linux, e quais efeitos colaterais correspondentes você deve levar em consideração.

Uma breve descrição do Bash

O shell Bash foi lançado pela primeira vez em 1989 e tem sido usado como o shell de login padrão para a maioria das distribuições Linux. Brian Fox escreveu Bash como um shell UNIX e uma linguagem de comando para o Projeto GNU como um substituto de software livre para o shell Bourne. É um acrônimo para Bourne Again Shell. Bash é amplamente compatível com sh e incorpora recursos úteis do shell Korn ksh e o shell C csh [6].

Enquanto o sistema operacional GNU fornece outros shells, incluindo uma versão do csh, Bash é o shell interativo padrão. Ele é projetado com portabilidade em mente e atualmente roda em quase todas as versões do UNIX e outros sistemas operacionais [9].

Variáveis ​​Bash em poucas palavras

Variáveis ​​são componentes essenciais de 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 no Bash e em qualquer linguagem de programação. Isso torna possível para nós, como humanos e usuários do computador, armazenar valores no "cérebro" do computador e encontrá-los novamente por meio do nome atribuído da variável.

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

Desde que haja memória suficiente disponível para o seu script, você pode criar e usar variáveis ​​livremente. Você pode simplesmente defini-los definindo um nome de variável e, em seguida, atribuindo seu valor. Um nome de variável no Bash pode incluir letras, dígitos e sublinhados. Seu nome pode ser iniciado com uma letra e um sublinhado, apenas. Os nomes de variáveis ​​válidos são size, tax5 e _tax20, mas não 5rules.

Um valor de variável no Bash pode conter um número, um único caractere, uma string de caracteres ou uma lista de itens (chamada matriz). Ele não tem um tipo de dados visível, e o tipo de dados interno da variável será automaticamente descoberto (ou derivado) na 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 numérica de número.

#! / bin / bash
welcomeMessage = "Olá, mundo!"
echo $ welcomeMessage
preço = 145
echo $ price

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

Não existem regras fixas para a grafia de nomes de variáveis, apenas convenções. Estas convenções são usadas:

Para empresas globais de TI, é comum trabalhar com guias de estilo para garantir um estilo de codificação comum entre a empresa. Consulte o Developer Editorial for IBM e o Google Style Guide [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 dele. O exemplo abaixo mostra isso para a variável $ message que pertence ao script e $ welcome que pertence à função outputWelcomeMessage ().

#!/ bin / bash
# define uma mensagem variável para o script
mensagem = ”Olá, de novo!”
outputWelcomeMessage ()
# define uma variável local
welcome = ”Olá!”
echo $ welcome

outputWelcomeMessage () # imprime Olá!
echo $ message # prints Olá, de novo!

Para certificar-se de que uma variável definida anteriormente com o mesmo nome está ligada localmente, use a palavra-chave local conforme demonstrado a seguir. Sem a palavra-chave local a atribuição na linha 8 estaria relacionada à variável definida globalmente com o mesmo nome definido anteriormente.

#!/ bin / bash
# define uma mensagem variável para o script
mensagem = ”Olá, de novo!”
outputWelcomeMessage ()
# define uma variável local com o mesmo nome
Mensagem local = ”Olá!”
echo $ message

outputWelcomeMessage () # imprime Olá!
echo $ message # prints Olá, de novo!

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. O Bash oferece o uso da palavra-chave export seguido pelo nome da variável. A lista abaixo demonstra isso para a variável backupPath.

$ backupPath = ”/ opt / backup /”
$ export backupPath

O comando export é um shell embutido que é usado para definir a variável como aquele que os subshells (shells gerados do original) herdam. Variáveis ​​que são 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 palavra-chave declare seguida da opção “-x” (consulte [5] para obter mais informações sobre o comando declare). O efeito é semelhante ao comando de exportação que foi introduzido antes.

$ declare -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 é definido como / root no pai, então a variável $ HOME do filho também é definida como / root.

Comandos Adicionais

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 que é executado em uma sessão X. Ele contém variáveis ​​como $ XTERM (tipo de terminal), $ SHELL (o programa que é chamado no login e mostra / bin / bash para o caminho para o interpretador Bash), $ LS_COLORS (as cores que estão em uso para destacar arquivos diferentes tipos ao chamar ls) e $ DESKTOP_SESSION (o ambiente de trabalho X atual).

O terceiro e o quarto são opções do comando export - -p e -n. -p é uma abreviatura de print e apenas exibe todas as variáveis ​​exportadas no shell atual usando o comando declare.

$ export -p
declara -x DESKTOP_SESSION = "xfce"
declara -x DISPLAY = ": 0"
declara -x GLADE_CATALOG_PATH = ":"
declara -x GLADE_MODULE_PATH = ":"
declara -x GLADE_PIXMAP_PATH = ":"
declara -x HOME = "/ home / frank"
declara -x LANG = "de_DE.UTF-8 "

A opção -n é usada para remover a definição de uma variável de ambiente. A lista abaixo demonstra isso para a variável previamente definida BACKUPPATH.

$ export -n BACKUPPATH

Conclusão

O Bash é um ambiente muito inteligente, mas às vezes um pouco complexo. As variáveis ​​controlam como as diferentes ferramentas interagem. A exportação de variáveis ​​ajuda a comunicação entre os processos e é fácil de usar na vida cotidiana.

Sobre os autores

Jacqui Kabeta é ambientalista, ávida pesquisadora, treinadora e mentora. Em vários países africanos, ela trabalhou na indústria de TI e ambientes de ONGs.

Frank Hofmann é desenvolvedor, instrutor e autor de TI e prefere trabalhar em Berlim, Genebra e Cidade do Cabo. Co-autor do Livro de gerenciamento de pacotes Debian disponível em dpmb.org

Links e referências

Emular cliques do mouse passando o mouse usando o mouse sem cliques no Windows 10
Usar um mouse ou teclado na postura errada de uso excessivo pode resultar em muitos problemas de saúde, incluindo tensão, síndrome do túnel do carpo e...
Adicione gestos do mouse ao Windows 10 usando essas ferramentas gratuitas
Nos últimos anos, os computadores e sistemas operacionais evoluíram muito. Houve um tempo em que os usuários tinham que usar comandos para navegar pel...
Controle e gerencie o movimento do mouse entre vários monitores no Windows 10
Gerenciador de mouse com tela dupla permite que você controle e configure o movimento do mouse entre vários monitores, diminuindo seus movimentos pert...