Entendendo e escrevendo 'Variáveis ​​Linux' em scripts de shell - Parte 10

Entendendo e escrevendo 'Variáveis ​​Linux' em scripts de shell - Parte 10

A linguagem Linux Shell Script sempre foi um tópico quente e sempre estará no futuro. A linguagem de script de shell é mágica e é tão fácil fazer um programa na linguagem de script como em qualquer outro idioma. No entanto, ele precisa de um conhecimento profundo do que estamos fazendo e qual é o resultado esperado.

Entendendo variáveis ​​em scripts de shell

Todos os artigos de script de shell que escrevemos para nossos leitores são muito apreciados, incluindo o último "um insight de variáveis ​​Linux". Estamos estendendo o último artigo a um novo nível.

Atributos variáveis

Cada variável no ambiente Linux tem certas opções e são chamadas de 'atributos'. Essas opções ou atributos podem ser transformados Sobre e Desligado, Quando necessário de acordo com a situação usando um comando "declarar".

Um exemplo de atributo variável está usando um interruptor, digamos '-eu'que ativará o atributo inteiro para a variável correspondente. Mesmo que um valor não numérico seja passado para mudar '-eu'Não vai lançar uma mensagem de erro e saída'0'Como interpretação inteira. Aqui fica mais claro no exemplo abaixo.

Declare um número inteiro variável, Bill = 121

[Email Protected]: ~ $ declarar -i Bill = 121

Printf o valor da conta variável.

[Email protegido]: ~ $ printf "%d \ n" "$ bill" 121

Deixe o valor variável ser uma string. A conta variável já foi declarada, não há necessidade de declarar a segunda vez. Basta alterar o valor da variável como.

[Email protegido]: ~ $ Bill = Tecmint

Agora, de novo imprima o valor da conta variável.

[Email Protected]: ~ $ printf "%d \ n" "$ Bill" 0

Perceber '0'No local da mensagem de erro.

Agora, a questão é: como saber os atributos de variáveis ​​já declaradas?
[Email Protected]: ~ $ declarar -P Bill declarar -i Bill = "121"

Aqui um -p (Stands for Print) Switch vem para resgatar.

Novamente, o que devo fazer para desligar os atributos de uma variável?

Para mudar Desligado os atributos de uma variável o que precisamos é para colocar um + (mais) Assine logo antes do interruptor. Aqui está mais claro no exemplo abaixo.

Trocar Desligado o atributo inteiro para a variável acima.

[Email Protected]: ~ $ declarar +Bill I Bill

Verifique o valor da variável.

[Email Protected]: ~ $ printf "%d \ n" "$ bill" BASH: printf: Bill: Número inválido 0

Agora imprima o valor da variável usando string de switch.

[Email Protected]: ~ $ printf "%s \ n" "$ Bill" Tecmint

Aqui no exemplo acima, Bash não pôde julgar o valor não numérico como erro, no entanto printf está interpretando, o que poderia ser um número e o que não poderia ser.

Variáveis ​​somente leitura

Você pode ter ouvido apenas leitura de memória (ROM), mas o que é variável somente leitura? Tem alguma semelhança com ROM?

Variáveis ​​somente para leitura bem leitura, como a memória somente leitura, é algo cujo valor não pode ser alterado depois de atribuído. Portanto, é chamado apenas de leitura. Você não pode escrever, editar ou modificar um novo valor para essa variável. Aqui está uma ilustração usando o exemplo.

Decalre apenas uma leitura (-r) Nome da variável, cujo valor é “Tecmint.com ”.

[Email Protected]: ~ $ declarar -r name = "Tecmint.com "

Printf o valor da variável declarada acima.

[Email Protected]: ~ $ printf "%s \ n" "$ nome" Tecmint.com

Tente alterar o valor da variável.

[Email Protected]: ~ $ declarar -r name = "Avishek" Bash: Declarar: Nome: Readenly

Como discutido acima, os atributos de uma variável somente leitura podem ser alterados usando '+' sinal.

Exportando variáveis ​​no Linux

Todas as variáveis ​​de shell declaradas em um script de shell estão disponíveis até que o script esteja em execução. Fora do script, a variável do script não existe. O processo de disponibilizar variáveis ​​fora do script é chamado de variáveis ​​de exportação.

Uma variável pode ser exportada para fora do shell usando o interruptor declarar -x (exportação), que reconhecem o shell o que você queria exportar. Uma chave de exportação de declarar pode ser usada como.

[Email protegido]: ~ $ declarar -x variável = "constant_value"

Todas as alterações feitas na variável enquanto o script está sendo perdido quando a variável é exportada para fora do script. A variável de exportação é muito importante no script de shell.

Queremos ter uma variável que deve ser somente leitura e disponível fora do script, precisamos usar o switch -r e alternar -x ao mesmo tempo.

[Email protegido]: ~ $ declarar -rx variável = "constant_value"

variáveis ​​ambientais

As variáveis ​​compartilhadas entre o programa e o programa que as executa. Variáveis ​​de ambiente podem ser exportadas, mas os atributos não podem ser atribuídos a ele.

Compreendendo a teoria acima praticamente. Aqui temos dois scripts 0.sh e 1.sh.

# 0.sh #!/bin/bash declarar -rx nome = tecmint bash 0.SH saída 0

E o segundo script é.

# 1.sh #!/bin/bash printf "%s \ n" "$ nome" nome = Tecmint.com printf "%s \ n" "$ nome" saída 0

Aqui o que está acontecendo, é uma variável (nome) é declarada apenas leitura e exportada e imediatamente após o segundo script ser chamado.

O segundo script acabou de imprimir a variável do primeiro script que foi exportado no primeiro printf declaração. Na declaração PrintF Second Print, mostra o novo valor atribuído à variável 'nome'.

Não há necessidade de se preocupar que a variável fosse somente leitura, como pode ser transferida. Você não se lembra de que “todas as alterações feitas na variável enquanto o script está em execução, é perdido quando a variável é exportada para fora do script.”

Referências

O declarar O comando permite todos os interruptores abaixo junto com sua combinação.

  1. -a : Declara uma matriz.
  2. -f : Exibir função e definição.
  3. -F : Nome da função de exibição.
  4. -r : Declare a variável como somente leitura.
  5. -x : Declare a variável como exportável.
  6. -EU : Declare a variável como inteira.

É tudo por agora. No próximo artigo, discutiremos maneiras de substituir variáveis ​​usando 'aval'Comando e as variáveis ​​já definidas em Bash antes de fechar este tópico. Espero que vocês estejam aproveitando sua jornada até a profundidade de scripts. Até então fique atento e conectado a Tecmint.com.