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:
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