Um insight de Linux variáveis na linguagem de script de shell - Parte 9
- 4389
- 40
- Ms. Travis Schumm
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.
- 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 shellSalvando 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
- Um nome de variável deve justificar, o uso da variável no script.
- Usar o mesmo nome de variável em todo o programa é fortemente aconselhado.
- 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.
- BASH-O nome completo do BASH.
- Bash_env-in um script de shell, o nome do arquivo de perfil executado antes do início do script.
- Bash_version-a versão do Bash (por exemplo, 2.04.0 (1) -Elease).
- Colunas-o número de caracteres por linha em sua tela (por exemplo, 80).
- 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.
- HostType-Type de computador.
- Home-o nome do seu diretório doméstico.
- Ostype-o nome do sistema operacional.
- Lista separada por Path-Colon de caminhos de pesquisa para encontrar um comando para executar.
- PPID-o ID do processo do processo pai da concha.
- Prompt_Command-Command para executar antes da configuração da sequência de prompt do PS1 Primário.
- PWD-o diretório de trabalho atual (conforme definido pelo comando CD).
- Retornos aleatórios um número aleatório entre 0 e 32767 cada vez que é referenciado.
- Shell-a shell preferida para usar; Para programas que iniciam uma concha para você.
- 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.
"- « Habilitando o usuário e a senha Proteja os diretórios da web no Zentyal WebServer - Parte 10
- MySqldumper A PHP e PERL Based Backup Backup Backup Tool »