>_Variáveis

Conceito de Variáveis em shell script

As variáveis são posições na memória do computador onde ficam armazenadas n temporariamente algum valor para ser usadas por programas ou scripts que no Linux são precedidas pelo caractere dólar $. No Linux existem dois tipos de variáveis: Variáveis do sistema – criadas e gerenciadas pelo próprio Linux e são definidas em letras MAIÚSCULAS, onde visualiza-las pelos comandos printenv e env tais como: HOME, USER ou USERNAME, SHELL e etc

Variáveis definidas pelo usuário – criadas e gerenciadas pelo usuário e são definidas em letras minúsculas ou MAIÚSCULAS.

Variáveis do sistema Você pode ver as variáveis do sistema com os comandos printenv, env e set como mostra o exemplo abaixo:

$ printenv

ou
$ env

ou

$ set | more
Algumas variáveis do sistema

SHELL Exibe o nome do shell
HOME Exibe o diretório home do usuário
USER ou USERNAME Exibe o nome do usuário
LOGNAME Exibe o login do usuário
LANG Exibe o idioma do sistema
OSTYPE Exibe a arquitetura do sistema

Você também pode exibir qualquer variável ambiente do sistema com o comando echo.
$ echo $HOME
$ echo $USER

Variáveis definidas pelo usuário

O nome de variáveis podem começar com uma letra do alfabeto (a, b, c, …) ou com underline_, sendo que o shell é sensitive case, ou seja, diferencia minúsculo de maiúsculo, portanto A é diferente de a. Para exibir o valor de uma variável através do comando echo é necessário especificar o sinal de dólar $ antes do nome da variável ($a). Outro detalhe é que não é permitido espaços em branco (a =10 ou a= 10 ou a = 10) ou iniciar uma variável com um valor numérico (1a=10) , abaixo seguem exemplos de variáveis O bash reconhece uma variável quando ela começa com $, ou seja, a diferença entre ‘palavra’ e ‘$palavra’ é que a primeira é uma palavra qualquer, e a outra uma variável. Para definir uma variável, utilizamos a seguinte sintaxe:

variavel="valor"

O ‘valor’ será atribuído a ‘variável ‘. Valor pode ser uma frase, números, e até outras variáveis e comandos. O valor pode ser expressado entre as aspas (“”), apóstrofos (”) ou crases (“). As aspas vão interpretar as variáveis que estiverem dentro do valor, os apóstrofos lerão o valor literalmente, sem interpretar nada, e as crases vão interpretar um comando e retornar a sua saída para a variável.

Vejamos exemplos:

OBS: (barra) invertida com a variável ao seu lado($A), retorna o próprio nome da variável no momento da execução do script.

$ variavel="Eu estou logado como usuário $user"
$ echo $variavel
   Eu estou logado como usuário vandocouto

$ variavel="Meu diretório atual é o `pwd`"
$ echo $variavel
   Meu diretório atual é o /home/vandocouto

Se você quiser criar um script em que o usuário deve interagir com ele, é possível que você queira que o próprio usuário defina uma variável, e para isso usamos o comando read, que dará uma pausa no script e ficarará esperando o usuário digitar algum valor e teclar enter. Exemplo:

Abaixo  criei um script com 4 variáveis (var1, var2, var3 e var4), onde var1 é uma variável que armazena um valor numérico (4), var2 armazena um caractere(‘E’), var3 armazena um (texto) (“olá mundo!”) e var4 armazena um comando entre ‘crases’ (`ls /home/vandocuto`).

Lembre-se de dar a permissão de execução para este script chomd +x exe3.bash. Para executar bash exe3.bash

Variáveis especiais

$0 – Exibe o nome do programa ou script que está sendo executado
$? – Exibe o estado de saída do último comando executado
$$ – Exibe o número do processo do script que está sendo executado
$# – Exibe o número de parâmetros fornecido para um comando
$! – Exibe o número do último processo que está sendo executado em background
$* – Exibe todos os parâmetros separados por espaços em branco
$@ – Idêntico ao anterior ($*)
$- – Opções correntes definidas pelo shell
$_ – Armazena o valor do último parâmetro do comando anterior
$1 a $9 – Exibe a posição do parâmetro de 1 a 9

echo $PWD – Caminho para a directoria actual.
echo $UID – ID do utilizador que iniciou a Shell
echo $SHLVL – Numero de sessões Shell abertas.
echo $REPLY – Contém o último input recebido pela função read não suportado pelo ?SH?
echo $RANDOM – Cria um número aleatório entre 0 e 32767 não suportado pelo ?SH?
echo $PATH – Caminhos de pesquisa para comandos das Shell.
echo $HOME – Caminho para a HOME do utilizador actual.

Exemplos:

Outro script

Exemplo: Colocando um processo em background e verificando este mesmo processo com a variável $!

Exemplo: Verificando os parâmetros digitados das variáveis $1, $2, $3 e $4

Manipulação de string com variáveis.

É possível fazer também referência a valores de variáveis entre { } para separar a variável e dos caracteres especiais. Veja abaixo:

$variavel – Exibe o valor da variável
${variavel} – Idêntico ao anterior
${#variavel} – Exibe o total de caracteres da variável
${variavel:-texto} – Se a variável não for definida retorna o texto
${variavel:posiçãoX} – Retorna o texto a partir da posição (posiçãoX)
${variavel:posiçãoX:quantidadeX} – Retorna a quantidade (quantidadeX) de caracteres a partir da posição (posiçãoX)
${variavel#texto} – Recorta o texto do inicio string
${variavel%texto} – Recorta o texto do fim string
${variavel/texto/novo} – Substitui texto por um texto novo somente uma vez
${variavel//texto/novo} – Substitui texto por um texto novo sempre

Outro script

Importante saber: A primeira posição da string dentro de uma variável, sempre começa a partir do número 0(zero), ou seja, a primeira letra da string.

Exemplo:

Retorne o texto a partir da posição 5.

Podemos usar também desta outra forma:

${VAR1:0:8}

onde a variável ira retorna a quantidade de 8(oito) caracteres a partir da posição 0(zero).

${VAR1#Linux}

este exemplo acima recorta o texto Linux do valor da variável

Substituindo um texto por outro

echo ${VAR1/Linux/LINUX}

ou

echo ${VAR1//Linux/LINUX}

Existem outros tipos e formas de declarar uma variável no Shell Script, para isso aconselho um bom livro e muitas consultas em outros tutoriais.

Boa sorte!

>_Variáveis
Tagged on:

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

%d blogueiros gostam disto: