Um insight de Linux variáveis na linguagem de script de shell - Parte 9

Um insight de Linux variáveis na linguagem de script de shell - Parte 9

Já escrevemos uma série de artigos sobre Script de shell Linux o que foi acolhedor bem -vindo daquele tempo e foi muito relevante até agora. Aqui está o link para a coleção de artigos sobre scripts de shell.

  1. Aprender script de shell linux

Aqui neste artigo, veremos o variáveis, sua execução e sua implementação no script de shell.

Variáveis ​​Linux Script de shell

Salvando uma saída

A saída de um comando pode ser redirecionada para a saída padrão ou um arquivo e pode ser armazenada em uma variável também. Se a saída de um comando for grande o suficiente para que não se encaixe na tela, deixamos apenas com a opção de salvar a saída para um arquivo em uma variável. Uma vantagem de salvar a saída na variável é a velocidade de exame mais rápida. As variáveis ​​são salvas na memória e, portanto, tende a ser rápido em comparação com a recuperação do arquivo.

Variáveis ​​na linguagem de script

As variáveis ​​são um componente importante usado em scripts de shell e são declaradas usando o comando Bash “Declarar”. Declarar uma variável dizer 'nível', precisamos executar o comando abaixo.

$ declarar nível

Observação: Precisamos usar “TypeCast”, Uma declaração incorporada para a compatibilidade de Shell Korn. O 'declarar' é mais avançado e contém todos os recursos, portanto é recomendado ao usar o Bash.

Regras
  1. Um nome de variável deve justificar, o uso da variável no script.
  2. Usar o mesmo nome de variável em todo o programa é fortemente aconselhado.
  3. O nome das variáveis ​​pode ser maiúsculo e minúsculas, mas pelos comandos de shell de convenção estão em minúsculas e, portanto, devemos usar o nome das variáveis ​​na maçaneta, de modo a remover qualquer confusão. e.g., Total_billed_amount, Sell_report, Order_receipt, etc.

Implementação

Uma variável pode receber um valor usando um sinal igual (=). Para atribuir uma string vazia a uma variável, não devemos fornecer nenhum valor após sinal igual.

$ Nível =

Verifique o valor armazenado em variável 'nível' como.

$ printf "%i" $ nível

printf, o comando a maior parte 'C'Os programadores estão cientes, imprime dados. %eu - Representa o número inteiro. Podemos substituí -lo por %c para caráter ou %c para string, como e quando necessário.

$ Nível: observe o '$'que funciona como substituidor de valor para a variável'NÍVEL'.

Saída de amostra
$ printf "%i" $ nível 0

Atribuir um valor à variável.

$ Nível = 0

Verifique os dados armazenados na variável.

$ printf "%i" $ nível 0

OBSERVAÇÃO: É interessante notar que em ambos os casos, quando não atribuímos o valor à variável e quando atribuímos o valor '0'para a variável'NÍVEL'Saídas 0. Embora a saída seja igual em ambos os casos, mas o script de shell lida com a declaração variável de maneira diferente.

Atribuir um novo valor à variável.

$ Nível = 121

Verifique os dados armazenados na variável.

$ printf "%i" $ nível 121

Sem serem uma variável

Declarar é um comando bash e cria variável apenas quando executado. A variável criada permanece na memória até que o script pare ou a variável seja destruída.

$ não atendido

Variáveis ​​predefinidas em Bash

Bash acabou 50 variáveis ​​predefinidas. Algumas dessas variáveis ​​têm um significado especial anexado a Bash e.g., uma variável ALEATÓRIO produz um número aleatório. Se não for definido e depois definido novamente, o valor da variável original será perdido para sempre. Portanto, é recomendável não usar nenhuma variável definida pelo sistema.

Aqui está uma lista de algumas variáveis ​​de batida úteis.

  1. BASH-O nome completo do BASH.
  2. Bash_env-in um script de shell, o nome do arquivo de perfil executado antes do início do script.
  3. Bash_version-a versão do Bash (por exemplo, 2.04.0 (1) -Elease).
  4. Colunas-o número de caracteres por linha em sua tela (por exemplo, 80).
  5. HostName-o nome do computador. Sob algumas versões do Linux, esse pode ser o nome da máquina. Em outros, pode ser um nome de domínio totalmente qualificado.
  6. HostType-Type de computador.
  7. Home-o nome do seu diretório doméstico.
  8. Ostype-o nome do sistema operacional.
  9. Lista separada por Path-Colon de caminhos de pesquisa para encontrar um comando para executar.
  10. PPID-o ID do processo do processo pai da concha.
  11. Prompt_Command-Command para executar antes da configuração da sequência de prompt do PS1 Primário.
  12. PWD-o diretório de trabalho atual (conforme definido pelo comando CD).
  13. Retornos aleatórios um número aleatório entre 0 e 32767 cada vez que é referenciado.
  14. Shell-a shell preferida para usar; Para programas que iniciam uma concha para você.
  15. Termo-o tipo de emulação do terminal (por exemplo, console).

A regra de dividir as palavras.

$ Nível = 0 $ printf "%i" $ nível 0 e $ nível = "0" $ printf "%i" $ nível 0

Nos dois casos, a saída permanece a mesma. Então, qual é a diferença de resultado ao usar a cotação?

Vamos verificar o mesmo com dados variáveis ​​diferentes.

$ Nível = 0; 1; 2; 3; 4; 5 BASH: 1: Comando não encontrado BASH: 2: Comando não encontrado BASH: 3: Comando não encontrado BASH: 4: Comando não encontrado BASH: 5: Comando não encontrado
$ printf "%i" $ nível 0

Sem mencionar, a saída não está correta. Bash está ocupando o espaço depois de '0'Como rescisão e, portanto, o valor da variável é definido como'0'. Agora tentamos usar a cotação para variáveis ​​como abaixo.

$ Nível = ”0; 1; 2; 3; 4; 5 ”$ printf"%s "$ nível 0; 1; 2; 3; 4; 5; 5

Ainda o resultado não está correto. Bash pegou os valores variáveis ​​e removeu todos os espaços entre eles. Por isso printf não interpretou 0,1,2,3,4,5 como valores distintos. Então, qual é a solução?

printf "%s" "$ nível" 0; 1; 2; 3; 4; 5

Sim! Colocar a substituição variável em cotações é a solução. Citações agrupa os personagens do shell e interpretam os personagens especiais de uma maneira significativa.

As citações podem ser usadas consecutivas e é uma boa ideia incluir substituições variáveis ​​com citações. Além disso, pode ser usado para separar o texto geral das citações. Aqui está um exemplo.

$ Nível = 5 $ flag_message = "eu limpei o nível" "$ nível" ". Eu mereço apreciação."$ printf"%s "" $ flag_message "
“Eu limpei o nível 5. Eu mereço apreciação.”

Separar pedaços de texto citado com espaço resultará no mesmo problema que discutido acima. A festa tratará o espaço em branco como terminação. Outra maneira de substituição variável é.

$ Nível = 5 $ flag_message = "Eu limpei o nível $ nível. Eu mereço apreciação."$ printf"%s "" $ flag_message "" Eu limpei o nível 5. Eu mereço apreciação.”

Citações únicas restringem Bash da impressão de caracteres especiais.

$ printf “%s” '$ flag_message' “$ flag_message”

A barra de barriga (/)

O backslash funciona como uma única citação para um personagem. Você já pensou como você vai imprimir (““)?

$ printf "%c" "\" ""

Quando %q agrupado com printf, fornece barra de barriga depois de cada palavra para garantir espaçamento de palavras.

$ Nível = 5 $ flag_message = ""Eu limpei o nível $ nível. Eu mereço apreciação.""$ printf""%q """" $ flag_message """" eu \ tenho \ limpo \ nível \ 5.\ Eu \ mereço \ apreciação.”

É tudo por agora. Sempre tentamos fornecer aos nossos leitores artigos que são úteis para eles de vez em quando. O artigo coberto acima é vasto, portanto, o restante dos tópicos com exemplos será produzido no próximo artigo, que incluirá 'atributos da variável', 'Exportação variável' etc.

Até então fique atento e conectado a Tecmint.com. Não se esqueça de nos fornecer seu valioso feedback na seção de comentários abaixo.

"