Compare Preços no Buscape e no BondFaro
BuscaPé, líder em comparação de preços na América Latina

HP AMD Turion 64 X2 1.9 GHz
2 Gb RAM - 160 Gb HD

Tcl/Tk
Alexander Franca

MP6 Emulator
Dynacom 2 Gb

Patch Adams
O Amor é Contagioso

Pen Drive
4 GB

Pinguim de Pelúcia

Patinho Faminto
www.patinho.net

Apostilas
Expr Regular
Remasterização
SED
Shell Script

Distros
Dizinha
Patinho Faminto

Nerd
Desejo Nerd
Shell Scripts

Artístico
Livro
Musica
Poesias
Tirinhas

Bobagens
Ascii Art
Games Antigos
Porque Amar Nerds
Porque Não Amar Nerds

Eu
About Me
Recomendo
Contato
DOAÇÕES

Amigos
Aurélio
Jogos Antigos
NeoDizinha
Nerds Nervosos
ProibidoParaNormais


* = Recentemente Atualizado



website stats
Locations of visitors to this page

Anúncio provido pelo BuscaPé
BuscaPé, líder em comparação de preços na América Latina

Ver Indice Geral da Apostila de Shell Script

Pegar Variável direto do Terminal ( revisado )

Se você já pensou: "Poxa, cansei de sempre usar um READ para armazenar um valor em uma variável. Poderia haver um jeito mais rápido de pegar alguns valores..."
Para sua felicidade isso existe :D

Imagine que queira fazer um script que retorne a área de um quadrado. E para isso ser mais prático mandar o valor da base junto do comando para executar o script.
Vamos ver tudo com calma, que você entende já.
Crie um script chamado "quadrado.sh" com o conteúdo:

quadrado.sh

echo "A área desse quadrado é: $(($1**2))"

Agora em vez de chamar o script usando "./quadrado.sh" chame-o usando "./quadrado.sh valor_da_base"
Exemplo:
./quadrado 5

O script retornará:
A área desse quadrado é: 25

O valor digitado após "./quadrado.sh" é guardado na variável $1
Em seguida é feito o cálculo da área com esse valor

 
 

O Shell armazena informações que são passadas ao carregar o script em variáveis especiais.
São elas:

Variáveis especiais usadas pelo shell:
$0Armazena o Próprio Comando chamado no terminal
$1Armazena o Primeiro Parâmetro chamado no terminal
$2Armazena o Segundo Parâmetro chamado no terminal
${10}Armazena o Décimo Parâmetro chamado no terminal
$#Armazena o número total de parâmetros chamado no terminal
$*Armazena o todos parâmetros numa única variável

Repare que para chamar do Décimo Parâmetro em diante é necessário usar { }. Vejamos um exemplo:
Suponha que você passe o comando:
./variaveis 1 2 3 4 5 6 7 8 9 a b

Se em seu script tiver um:
echo "$10"

O script retornará:
10

Por que isso acontece?
O shell interpreta que você quer imprimir o valor de "$1" ( que no exemplo é 1 ) e ao lado desse valor imprimir um 0.

Se você deseja imprimir o parâmetro número 10 deve colocar "${10}", então o script imprimirá "a" que é o valor que entramos para o décimo parâmetro

 
 

Aplicação Prática:

Imagine agora que queira criar um script que dá o perímetro de um retângulo.
O ideal é verificar se o usuário passou 2 valores pelo terminal, 1 para base e 1 para a altura desse retângulo.

Como fazer para saber se o usuário digitou esses dois valores?
Simples vamos usar o "$#" ele retorna quantos valores o usuário digitou no terminal.
Veja o script

perimetro_ret.sh

base="$1"
altura="$2"
numero="$#"

if [ $numero -ne 2 ]
then
	echo "Eu preciso de dois valores calcular o perímetro do retângulo"
else
	echo "O perímetro desse retângulo é: $((($base + $altura) * 2))"
fi

 
 

Nota: 9

Votar:
Postado em: 2008-03-27

Ver Indice Geral da Apostila de Shell Script

Doações
Se quer nos ajudar, pode doar pelo PagSeguro

Ou pode doar pelo Paypal clicando no botão DONATE

Compare Produtos, Lojas e Preços


As poesias devem virar um livro impresso?
Claro
Só se tiver menos de 60 páginas
Só se tiver entre 60 e 120 páginas
Só se tiver mais que 120 páginas
Só vou comprar se for barato
Só vou comprar para você ficar feliz
Livro? Que Livro? Que poesia?
Resultado