logo

Variáveis ​​Bash

As variáveis ​​são a parte essencial da programação, ou podemos dizer que são o espírito de uma linguagem de programação. As variáveis ​​especificam a localização da memória por meio de caracteres numéricos e alfanuméricos. Eles são usados ​​para serem referenciados e manipulados em um programa de computador.

Quais são as variáveis?

Variáveis ​​​​são os contêineres que armazenam dados ou informações úteis como o valor dentro deles. Abaixo está a sintaxe de uma variável:

 Variable_name =value 

Uma variável é uma forma combinada de duas palavras, ou seja, variar + capaz, o que significa que seu valor pode ser alterado e pode ser usado várias vezes.

benefícios do instagram para uso pessoal

Variável é conhecida como armazenamento temporário para qualquer tipo de dados como inteiro, float, char, etc. Um nome de variável pode incluir alfabetos, dígitos e sublinhado , e seu nome pode ser iniciado apenas com letras e sublinhado.

Nota: Não podemos definir um nome de variável começando com qualquer dígito.

O que são variáveis ​​Bash?

Não podemos usar variáveis ​​bash sem ter as informações adequadas ( sintaxe, tipos de dados, tipos, funcionamento ) sobre isso, então, vamos percorrer este breve tutorial para ter uma visão geral apropriada das variáveis ​​Bash.

A princípio, conheça a sintaxe.

Sintaxe:

 Variable_name=value 

Conjunto de regras para definição de variáveis ​​Bash:

  1. Prefixe o nome da variável com o cifrão ($) ao ler ou imprimir uma variável.
  2. Deixe de lado o cifrão ($) ao definir uma variável com qualquer valor.
  3. O nome de uma variável pode ser alfanumérico ou pode ser escrito com um sublinhado (_).
  4. O nome de uma variável diferencia maiúsculas de minúsculas: x e X são considerados duas variáveis ​​diferentes.
  5. o nome da variável pode ser escrito em letras UPPER_CASE ou LOWER_CASE ou uma mistura de ambas, conforme desejar.
  6. Uma variável pode ser colocada em qualquer lugar em um script Bash ou na linha de comando, porque em tempo de execução, o Bash irá substituí-la pelo seu valor atribuído. Tornou-se possível fazer a substituição antes de executar o comando.
  7. Não deve haver espaços em branco em nenhum dos lados do sinal de igual (=) entre o nome da variável e seu valor. A seguir estão alguns exemplos de Variáveis ​​inválidas tendo espaços em branco (denotados por pontos ...) entre eles, conforme indicado abaixo:
    var1=...variável1
    var2...=variável2
    var3...=...variável3
  8. Não há necessidade de usar aspas, simples ou duplas, para definir uma variável com valor de caracter único, como var1=variável . Para inserir várias palavras ou String como um único item em uma variável, use aspas para colocar seu conteúdo nessa variável.
    • Aspas simples ('') ajudam a tratar todos os caracteres.
    • Aspas duplas ('') ajudam a fazer a substituição.

Tipos de dados

Nas linguagens de programação formais, você deve definir o tipo de dados de qualquer variável no momento da declaração da variável. Por exemplo:

 int year=2012 char comp_name='jtp' 

Mas no caso do Bash, você não precisa definir o tipo de dados de nenhuma variável no momento da declaração da variável. Variáveis ​​​​bash são não digitado , o que significa apenas digitar o nome da variável atribuindo seu valor, e ela considerará automaticamente esse tipo de dados.

Tal que se você atribuir qualquer valor numérico à variável, ela funcionará como inteiro e se você atribuir um valor de caractere à variável, então será String.

 year=2012 comp_name=jtp 

usando o comando echo, leia-os atribuindo o sinal $ antes do nome, como

eco $ ano
eco $nome

Tipos de variáveis ​​Bash

Existem dois tipos de variáveis ​​em um shell ou em qualquer sistema UNIX.

  1. Variáveis ​​definidas pelo sistema
  2. Variáveis ​​definidas pelo usuário

1. Variáveis ​​definidas pelo sistema: Estas são as variáveis ​​​​predefinidas à medida que são criadas e mantidas pelo próprio sistema operacional LINUX. Sua convenção padrão é que geralmente eles são definidos em letras maiúsculas, ou seja, UPPER_CASE. Portanto, sempre que você vir uma variável definida em letras maiúsculas, provavelmente são as variáveis ​​definidas pelo sistema.

Estas são as seguintes variáveis ​​definidas pelo sistema, conforme fornecido abaixo:

1. BASH representa o nome do shell.

Exemplo:

 BASH=/usr/bin/bash 

2. BASH_VERSION especifica a versão do shell que o Bash contém.

Exemplo:

 BASH_VERSION=4.2.46(2) 

3. COLUNAS especifique o não. de colunas para nossa tela.

Exemplo:

 COLUMNS=80 

4. CASA especifica o diretório inicial do usuário.

Exemplo:

 HOME=/home/jatpoint 

5. NOME DE LOGOTIPO especifica o nome do usuário de registro.

Exemplo:

 LOGNAME=javatpoint 

6. OSTIPO informa o tipo de sistema operacional.

Exemplo:

 OSTYPE=linux-gnu 

7. PCD representa o diretório de trabalho atual.

Exemplo:

 PWD=/home/javatpoint 

8. NOME DE USUÁRIO especifica o nome do usuário conectado no momento.

Exemplo:

 USERNAME=javatpoint 

Para saber a lista dessas variáveis ​​em seu sistema, digite os comandos definir, ambiente , e imprimirenv no terminal de linha de comando da seguinte maneira:

1. Digitando o definir comando.

Saída:

Variáveis ​​Bash

2. Digitando o ambiente comando

Saída:

Variáveis ​​Bash

3. Digitando o comando printenv

Saída:

Variáveis ​​Bash

Vamos chamar essas variáveis ​​através do Bash Shell. A seguir estão as etapas fornecidas:

Passo 1: Crie um script nomeado por Bash_sdvar e digite o seguinte código no Bash Console da seguinte forma:

 #! /bin/bash # Bash System-defined Variables echo $HOME # Home Directory echo $PWD # current working directory echo $BASH # Bash shell name echo $BASH_VERSION # Bash shell Version echo $LOGNAME # Name of the Login User echo $OSTYPE # Type of OS 

Passo 2. Veja o console Bash fornecido abaixo:

Variáveis ​​Bash

Etapa 3. Salve e execute o script. Ele mostrará a saída como você pode ver na figura abaixo.

Saída:

Variáveis ​​Bash

2. Variáveis ​​definidas pelo usuário: Essas variáveis ​​são criadas e mantidas pelo usuário. Geralmente, esses tipos de variáveis ​​são definidos em LOWER_CASES. Não existe nenhuma regra estrita para escrever essas variáveis ​​em letras minúsculas. Também podemos escrevê-los em letras maiúsculas.

Vamos criar um Bash Script para definir essas variáveis. Siga as etapas fornecidas abaixo:

Passo 1. Crie um script nomeado por bash_yard e digite o seguinte código no Bash Console:

 #! /bin/bash # User-Defined Variables name=Peter ROLL_NO=5245325 echo 'The student name is $name and his Roll number is $ROLL_NO.' 

Passo 2. Veja o código no Bash Console.

Variáveis ​​Bash

Etapa 3. Salve e execute o script.

Saída:

Variáveis ​​Bash

Trabalho de variáveis ​​Bash

Depois de uma demonstração básica das variáveis, vamos saber como elas funcionam?

Existem duas ações que normalmente realizamos para uma variável no Bash, conforme mostrado abaixo:

  • definindo um valor para uma variável
  • lendo o valor por isso.

Um valor de variável pode ser definido de diferentes maneiras, sendo a forma mais comum definir o valor diretamente. Para ler uma variável, podemos colocar seu nome (prefixado com sinal $) em qualquer lugar do script.

O Bash primeiro verifica todos os nomes de variáveis ​​como se estivessem presentes no script. Então ele interpreta cada linha do nosso script. Depois de identificar cada variável, ele substitui o nome da variável pelo valor atribuído. Afinal, ele interpreta/executa aquela linha de código e continua esse processo para cada linha codificada do nosso script.

NOTA: Ambos os tipos de variáveis ​​​​no Bash (discutimos) funcionam no terminal e também no script Bash. Vamos ver como eles funcionam no terminal e no Bash através de um exemplo simples:

Exemplo: Chame um nome de usuário por XYZ, seu local em que ele está trabalhando atualmente e a versão do Bash Shell que ele está usando para Bash Scripting.

1. Trabalhando no Terminal

Variáveis ​​Bash

2. Trabalhando no Bash Shell

Veja o script nomeado por Bash_Var fornecido abaixo:

Variáveis ​​Bash

No 3terceirolinha do roteiro , declaramos uma variável NOME DE USUÁRIO para armazenar o nome do usuário XYZ como seu valor.

Nas duas últimas linhas , imprimimos a mensagem pretendida usando o eco comando.

Existem duas variáveis ​​e um comando nesta mensagem. Cada um deles é precedido pelo cifrão ($) onde:

    NOME DE USUÁRIOé uma variável definida pelo usuário para chamar o nome do usuário,BASH_VERSIONé uma variável definida pelo sistema, que o shell chama a si mesmo. É usado para imprimir a versão do Bash Shell,PCDO comando é usado para imprimir a localização atual do usuário.

Para melhor compreensão, crie este script seguindo o código fornecido:

 #! /bin/bash #Bash Variables USER_NAME=XYZ echo Hey there! $USER_NAME is any user currently working on the directory $PWD with Bash Shell Version $BASH_VERSION. 

Ele mostrará a saída como você pode ver na imagem a seguir:

Saída:

Variáveis ​​Bash

Existem mais alguns exemplos para praticar variáveis ​​​​no terminal e no Bash Shell. Seguindo o conjunto de regras (discutido antes) tenha uma prática em variáveis ​​como segue:

A. Usando o Terminal de Linha de Comando

1. Configurando as variáveis

Variáveis ​​Bash

2. Lendo e referenciando as variáveis

Variáveis ​​Bash

3. Variáveis ​​inválidas

Variáveis ​​Bash

4. Combinando duas variáveis ​​de string

Variáveis ​​Bash

5. Concatenando Strings com Variáveis

Variáveis ​​Bash

NOTA: Não utilize aspas simples para combinar duas variáveis ​​e também para concatenação de Strings com variáveis. De modo que se você concatenar Strings colocando-as entre aspas simples, será uma falha lê-las, como você pode ver na imagem abaixo:

Variáveis ​​Bash

B. Usando script Bash:

É um exemplo de combinando as variáveis ​​String.

Variáveis ​​Bash

Saída:

Variáveis ​​Bash

Argumentos de linha de comando

Argumentos de linha de comando são usados ​​para tornar um script mais dinâmico, passando entradas para o código. Passamos esses argumentos no tempo de execução do script da seguinte forma:

 ./script_name arg1 arg2 arg3..... 

Não deve haver espaço entre o nome do script e todos os argumentos de passagem.

Como usar argumentos de linha de comando?

Em um Bash Shell, eles são usados ​​com a referência dos seguintes parâmetros padrão ou variáveis ​​especiais.

    US$ 0especifica o nome do script a ser invocado.US$ 1 a US$ 9armazena os nomes dos primeiros 9 argumentos ou pode ser usado como posições dos argumentos.$#especifica o número total (contagem) de argumentos passados ​​para o script.$*armazena todos os argumentos da linha de comando juntando-os.$@armazena a lista de argumentos como um array.$?especifica o ID do processo do script atual.$$especifica o status de saída do último comando ou do processo de execução mais recente.$!mostra o ID do último trabalho em segundo plano.

A seguir estão os dois métodos que usamos para passar argumentos de linha de comando:

Método 1: usando o número da posição

É a primeira forma de acessar os argumentos usando os parâmetros padrão (...). A imagem abaixo explica isso:

Variáveis ​​Bash

Saída:

Variáveis ​​Bash

Método 2: usando matriz.

É a segunda maneira de passar os argumentos como um Array. Siga o algoritmo fornecido para aplicar este método.

Passo 1: Crie um script Bash.

Passo 2: Declare qualquer nome de variável e atribua seu valor como $a no seguinte formato:

 variable_name=('$@') 

Onde $@ é o argumento padrão usado para armazenar os argumentos (passamos) como um array.

Etapa 3: Exiba os argumentos definindo seu índice de array no seguinte formato:

 ${variable_name[i]} 

Passo 4: Salve e feche o Script.

Etapa 5: Execute o script passando os argumentos.

Veja o seguinte programa:

Programa:

 #!/bin/bash args=('$@') echo ${args[0]} ${args[1]} ${args[2]} ${args[3]} 

No console Bash:

Variáveis ​​Bash

Saída:

Variáveis ​​Bash

Substituição de comando

De acordo com a documentação oficial do Bash

'Substituição de comando permite que a saída de um comando substitua o próprio comando. Bash executa a expansão executando o comando em um ambiente subshell e substituindo a substituição do comando pela saída padrão do comando, com todas as novas linhas finais excluídas. Novas linhas incorporadas não são excluídas, mas podem ser removidas durante a divisão de palavras.'

A substituição de comando refere-se a uma expansão que o Bash realiza para nós. Ele pega a saída do comando Bash, armazena em uma variável (geralmente) e exibe de volta com eco.

Substituição de comando oferece flexibilidade de dados em relação a scripts e atribuição de variáveis. É simples e fácil ter uma única saída de linha de comando. Caso a saída ultrapasse algumas linhas, as novas linhas finais serão removidas e o conteúdo completo da saída terminará em uma única linha.

Veja a sintaxe para uso:

Sintaxe

A forma clássica de substituir comandos em uma variável ou substituição de comando é usar crases (`...`), conforme mostrado abaixo:

 variable_name=`command_name` variable_name=`command_name [option...] argument1 argument2...` variable_name=`/path/to/command` 

Agora, fazemos a substituição de comandos colocando os comandos entre colchetes (precedidos pelo cifrão ($)). Dar uma olhada:

 variable_name=$(command_name) variable_name=$(command_name [option...] argument1 argument2...) variable_name=$(path/to/command) 

Então, vamos fazer a substituição de comandos com um exemplo conforme a discussão.

Neste exemplo, estamos substituindo o comando único ls em uma variável. Veja o terminal.

Variáveis ​​Bash

Linha 1: Sem substituição de comando, a saída é expandida em várias linhas.

Linha 2 e 3: Com a substituição de comando, a saída termina em uma única linha (economiza espaço removendo as linhas recém-financiadas).

A seguir está o script Bash para testar a substituição do comando.

Programa:

 #! /bin/bash # command substitution lsResult=$(ls) echo 'My files are:' $lsResult 

Veja o console Bash:

Variáveis ​​Bash

Saída:

Variáveis ​​Bash