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:
- Prefixe o nome da variável com o cifrão ($) ao ler ou imprimir uma variável.
- Deixe de lado o cifrão ($) ao definir uma variável com qualquer valor.
- O nome de uma variável pode ser alfanumérico ou pode ser escrito com um sublinhado (_).
- O nome de uma variável diferencia maiúsculas de minúsculas: x e X são considerados duas variáveis diferentes.
- o nome da variável pode ser escrito em letras UPPER_CASE ou LOWER_CASE ou uma mistura de ambas, conforme desejar.
- 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.
- 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 - 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.
- Variáveis definidas pelo sistema
- 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:
2. Digitando o ambiente comando
Saída:
3. Digitando o comando printenv
Saída:
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:
Etapa 3. Salve e execute o script. Ele mostrará a saída como você pode ver na figura abaixo.
Saída:
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.
Etapa 3. Salve e execute o script.
Saída:
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
2. Trabalhando no Bash Shell
Veja o script nomeado por Bash_Var fornecido abaixo:
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:
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:
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
2. Lendo e referenciando as variáveis
3. Variáveis inválidas
4. Combinando duas variáveis de string
5. Concatenando Strings com Variáveis
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:
B. Usando script Bash:
É um exemplo de combinando as variáveis String.
Saída:
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.
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:
Saída:
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:
Saída:
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.
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:
Saída: