Mostrando postagens com marcador bash. Mostrar todas as postagens
Mostrando postagens com marcador bash. Mostrar todas as postagens

quinta-feira, 13 de setembro de 2012

Shell Script parte 3: Funçoes

Introdução

O principal objetivo deste post é explicar de maneira simples e rapida como se faz utilização de funções em shell script.(Receomendo a leitura de parte I, parte II)
Funções

Assim como em qualquer "linguagem de programação" o shell script proporciona a utilização de funções.

Sintaxe:


nome_funcao ()
{
funcao_2;;
}

nome_funcao_2 ()
{
acao
}

nome_funcao


Onde:

  • nome_funcao – Funcão criada.
  • acao – Ação a ser tomada.
  • nome_funcao_2;; - Chamada da função nome_funcao_2.
  • nome_funcao – Função que dará inico ao shell script.


Será criado um shell script para no qual é possível escolher se será feito uma tabuada do 2 ou do 3 sendo que cada uma é feita por uma função.


#!/bin/bash

principal()

{

escolha=-1

while [ $escolha -ne 0 ];

do

echo "Escolha uma opção"

echo "1- Fazer tabuada do 2";

echo "2- Fazer tabuada do 3";

echo "0- Sair";

echo -n ":";

read escolha;

if [ "$escolha" -eq "1" ];

then

gerarTabuada2

elif [ "$escolha" -eq "2" ];

then

gerarTabuada3

fi

done

}

gerarTabuada3()

{

for i in {1..10}; do

echo "$i*3="$i*3

done

}

gerarTabuada2()

{

for i in {1..10}; do

echo "$i*2="$i*2

done

}

principal


Abaixo é possível ver a execução do shell script acima.




Passando parametros para um função

Uma ótima ideia é passar paramtros para uma função isso faz com que a mesma não se torne estatica.

Sintaxe:

nome_funcao ()
{
funcao_2 pametro1 parametro2 parametroN;;
}

nome_funcao_2 ()
{
 $1  #Utilização do parametro1
 $2  #Utilização do parametro2
 $N #Utilização do parametroN
acao
}

nome_funcao


Onde:

  • nome_funcao – Funcão criada.

    acao – Ação a ser tomada
  • parametro1/2/N - Parametros a serem passados para função. 
  • nome_funcao_2;; - Chamada da função nome_funcao_2.
  • nome_funcao – Função que dará inico ao shell script.


Será criado um shell script para no qual é possível escolher com qual número será feito uma tabuada.

Exemplo:

#!/bin/bash

principal()

{

escolha=-1

while [ $escolha -ne 0 ];

do

echo "Escolha uma opção"

echo "Informer um valor para fazer um tabuada(0=sair): ";


echo -n ":";

read escolha;

gerarTabuada $escolha;

done

}

gerarTabuada()

{

for i in {1..10}; do

echo "$i*$1="$i*$1

done

}

principal












Abaixo é possível ver a execução do shell acima.




Retornando valores de uma função

Sintaxe:

nome_funcao ()
{
retorno =$(funcao_2 pametro1 parametro2 parametroN)
}

nome_funcao_2 ()
{
 $1  #Utilização do parametro1
 $2  #Utilização do parametro2
 $N #Utilização do parametroN
acao

echo $retorno
}

nome_funcao


Onde:

  • nome_funcao – Funcão criada.

    acao – Ação a ser tomada.

    $retorno - Retorno da função
  • parametro1/2/N - Parametros a serem passados para função. 
  • nome_funcao_2;; - Chamada da função nome_funcao_2.
  • nome_funcao – Função que dará inico ao shell script.


Será criado um shell script para no qual é passado um nome para função e será retonado uma frase com o mesmo.

Exemplo:


#!/bin/bash

principal()

{
 echo "Qual seu nome ? ";
 read nome;

 frase=$(darBomdia $nome)

 echo $frase;
}

darBomdia()
{
 bomdia="Bom dia $1".
 echo $bomdia;

}

principal

exit

Abaixo é possível ver o funcionamento do shell script abaixo:


Shell script Parte 2: Laços e tomada de decisões

 
Introdução

 O objetivo deste artigo é explicar como se faz utilização das estruturas de tomada de decisão e laços condionais em shell script.(Para entender melhor o conteúdo deste post recomendo ler o post parte I)


Comando if

O comando if é um comando para tomada de decisão. O mesmo realiza um determinada ação quando um requisito é atendido.

Sintaxe:

if [ condição ]; then

acao

fi


Onde:

  • condicao - Condição para continuar no laço
  • acao - Comandos ou comportamento que será executado dentro do laço.


Será criado um exemplo no qual o usuario digitará um valor na tela e só sera exibida uma mensagem na tela caso esse valor seja igual ao numero 3.

#!/bin/bash

echo -n "Digite um algo: "

read valor_digitado


if [ "$valor_digitado" -eq "3" ];
then

echo Você digitou o numero 3

fi

exit

Abaixo é possível ver o resultado da execução do shell script.





Comando if/else

O comando if/else é um comando para tomada de decisão. O if será executando se uma determinada ação quando um requisito é atendido caso contratrio será utilizado o o qu estiver no bloco do comando else.

Sintaxe:

if [ condição ]; then

acao

fi


Onde:

  • condicao - Condição para continuar no laço
  • acao - Comandos ou comportamento que será executado dentro do laço.

Será criado um exemplo no qual o usuario digitará um valor na tela e só sera exibida uma mensagem na tela caso esse valor seja igual ao numero 3.


#!/bin/bash

echo -n "Digite um algo: "

read valor_digitado

if [ “$valor_digitado” -eq “3” ];

then

echo “Você digitou o numero 3”

else

echo "Você digitou o caracter $valor_digitado";

fi

exit

Abaixo é possível ver o resultado da execução do shell script.




Comando elif

O comando elif é um comando para tomada de decisão. O comando elfi depende do camando if o mesmo funcinona de maneira similar ao else/if porém o elfi também tem uma condição, que será executada caso um condição seja tendida.

Sintaxe

if [ condição ]; then

acao

elif [ condicao ]; then

acao

elif [ condicao ]; then

acao

fi


Onde:

  • condicao - Condição para continuar no laço
  • acao - Comandos ou comportamento que será executado dentro do laço.

Será criado um exemplo no qual o usuario digitará um valor na tela e só sera exibida uma mensagem na tela caso esse valor seja igual ao numero 3,4 ou 5.

#!/bin/bash

echo -n "Digite um algo: "

read valor_digitado

if [ “$valor_digitado” -eq “3” ];

then
echo "Você digitou o numero 3"

elif [ “$valor_digitado” -eq “4” ]; then
echo "Você digitou o numero 4"

elif [ “$valor_digitado” -eq “5” ]; then
echo "Você digitou o numero 5"

else
echo “Você não digitou nenhum número aceito”

fi


Abaixo é possível ver o resultado da execução do shell script.



Comando case

O camando case como o if é um comando para tomada de decisão.

Sintaxe:

case variavel in

opcao1)
acao1
;;
opcao2)
acao2
;;
opacaoN)
acaoN
;;

esac

Onde:

  • variavel – Variável que será verificada.
  • opcao1/2/N – Possíveis estados da variavel.
  • acao1/2/N – Ação a ser tomada quando a opção do mesmo for escolhida.


Será criado um script utilizando case que exibi uma mensagem quando é digitado a teclada 2 e outra quando é apertada a tecla 3.


#!/bin/bash

echo "Digite 1 ou 2"

read opcao;

case "$opcao" in

"1")

echo "Você digitou 1";

;;

"2")

echo "Você digitou 2";

esac

exit




Laços condicionais

Laço for

O laço for é uma ação repetitivamente até que uma condição seja atendida.

Sintaxe:

for contador in limite_contador;

do

acao

done

Onde:

  • contador - Variavel que será utilizada no laço for.
  • limite_contador - Limite que o contador poderá atingir. Quando o limite for atingido o laço terminará.
  • ação - Comandos ou comportamento que será executado dentro do laço.


Para exempli o laço será criado um shellscript simples que exibi na tela uma messagem 4 vezes.

#!/bin/bash

limite_contador=4

for contador in {1..4};

do

echo "Messagem exibida $contador vez".

sleep 1;

done

Abaixo é possível ver o resultado da execução do shell script.




Laço while

O while é um tipo de laço que existe em varias linguagens de programação. O mesmo executa uma ação enquanto um requisito não é atendido.

Sintaxe:

while [ condicao ]

do
  acao

done


Onde:

  • condicao - Condição para continuar no laço
  • ação - Comandos ou comportamento que será executado dentro do laço.


Agora será criado um shellscript simples que exibi na tela uma messagem 4 vezes.


#!/bin/bash

contador=1

while [ $contador -ne 4 ];

do

echo "Messagem exibida $contador vez".

sleep 1;

((contador=$contador+1))

done


Abaixo é possível ver o resultado da execução do shell script.





domingo, 26 de fevereiro de 2012

Shell Script - Para iniciantes

Introdução

Uma maneira de facilitar os serviços repetitivos que é feito sempre por determinados períodos de tempo no Linux é criar Shell Scripts.

De grosso modo Shell Script nada mais é que uma sequência de comandos do próprio Linux que são executados.

1. Criando um shell script

Para criar um shell script é necessário seguir alguns passos:


1.1. Crie um arquivo

No terminal ou modo gráfico crie um arquivo que possa ser editado para que se torne o primeiro shell script a ser criado.

Exemplo:

touch shel1.sh


Onde:

touch - Comando utilizado para criar um arquivo vazio.


1.2. Dê direito de execução para o arquivo criado


Para que seja possível executar o um shell script é necessário atribuir ao mesmo direito de execução, para isso é necessário usar o comando chmod.

Exemplo:

chmod a+x shel1.sh


Neste exemplo nosso arquivo poderá ser executado por qualquer usuário do sistema. Antes de atribuir o direito de execução o arquivo era visto pelo terminal da cor padrão (neste caso preto), com o direito de execução agora passou a ser verde.


Abaixo é possivel ver a imagem após execução do chmod.


1.3. Abra o arquivo recém criado para edita-lo


Neste exemplo será utilizado o editor de teXto vi que pode ser utilizado no terminal, mas também pode ser utilizado qualquer editor grafico como gedit para altera o arquivo recém criado.



Exemplo:

vi shel1.sh





Na primeira linha de um shell scrit é necessário colocar uma linha de código que diz qual shell será utilizado (ksh, sh, bash), a linha pode ser vista abaixo:


#!/bin/bash



Código visto no vi.



img31.png



Código visto no gedit





Esta linha especifica qual shell será responsável por executar o shell scritp que será criado, neste exemplo o shell responsavel será o bash que está localizado na pasta /bin.



Apos a linha que contém o código acima é possível inserir os comandos desejados.

Neste exemplo vamos fazer um shell que abre a baia do leitor de cd e após 3 segundos a mesma será fechada. O código pode ser visto abaixo:


#!/bin/bash

echo "Abrindo gaveta..."

eject

sleep 2

echo "A gaveta será fechada..."

sleep 1

eject -t


 

Onde:

echo - Comando responsável por exibir uma mensagem na tela.

eject - Comando responsável por fazer a baia do leitor de cd ejectar.

eject -t - Comando reponsável por fazer a baia do leito de cd voltar para seu estado inicial.

sleep - Comando que pausa um o terminal por um tempo em segundos pré determinado.

1.3.1 Inserão de comentários



Para inserir um comentário em códigos de shell script basta inserir o #(cerquilha ou jogo da velha) na frente da linha que você deseja comentar, por exemplo:



#!/bin/bash

#Eu sou um comentário.

echo “Existe um comentário neste shell script”



1.4. Executando o arquivo.



Para executar o shell script recém criado basta seguir os seguintes exemplos:


Caso você esteja no mesmo diretório do arquivo basta executa-lo da seguinte maneira:

./shel1.sh



Caso o mesmo esteja em diretório diferente do que você se localiza, execute da seguinte maneira:

Sintaxe:

/.../diretorio/shel1.sh

Onde :

/.../diretorio - diretório no qual o shell está localizado.


Exemplo:

/tmp/maguscode/shel1.sh



 

2. Utilizando Váriaveis

Criar uma variavel em shell script é bem simples basta seguir a sintaxe abaixo:


Sintaxe:

nome_variável=VALOR


Onde:

nome_variavel – Nome da variável.

VALOR – Valor atribuido a variável criada.

Exemplos:

cor_casa=verde

numero=32


Neste exemplo serão criadas as variáveis “cor_casa” que tem como atributo o valor “verde”, também é criada a variável “numero” que tem como atributo o valor 32.

Para se utilizar a variável basta utilizar o $ (Sifrão) na frente do nome da variável, como pode ser visto no código do shell script baixo.

Exemplo:

#!/bin/bash
cor_casa=VERDE
echo “A cor da casa é $cor_casa”

A saída será:

A cor da casa é VERDE


2.1 Utilizando saída de comando como valor de variável

Caso se deseje manipular a saída de um determinado comando como valor para uma variável basta escolher uma das seguintes sintaxes:

Sintaxe:

nome_variavel=$(comando)

ou

nome_variavel=`comando`

Onde:

nome_variavel – Nome da variavel que receberá a saída do comando.

comando – Comando a ser executado.


Exemplo:

#!/bin/bash
total_linhas=$(ls | wc -l)


echo “Existe $total_linhas neste diretório.”

Esse script shell exibi na tela a quantidade de arquivos existe em um determinado diretório.


Saída do script executado.


























terça-feira, 19 de julho de 2011

Fazer o leitor de cd ejetar a bandeja


Logo que comecei a usar Linux um dos comandos mais legais que vi e descobrir na época é o comando utilizado para ejectar a bandeja do leitor de cd/dvd e fazer a mesma voltar para seu lugar.

1º Ejectando a bandeja

Para ejectar a bandeja basta executar o comando:

eject 


Caso exista mais que um leitor de cd será  necessário descobrir qual o nome que o mesmo tem na pasta /dev e após o comando eject  especificar o caminho do mesmo:

eject /dev/cdrom1



2º Fazer a bandeja voltar ao seu lugar

Para fazer a bandeja voltar basta executar o comando:


eject -t


Caso exista mais que um leitor de cd será  necessário descobrir qual o nome que o mesmo tem na pasta /dev e após o comando eject -t especificar o caminho do mesmo:

eject -t /dev/cdrom1


quinta-feira, 22 de julho de 2010

Linux III: Montando Dispositivos





Resumo:

sudo mount caminho_dispositivo local_de_demontagem

sudo umount dispositivo_montado


Hoje em dia no Linux quase tudo pode ser feito por interface gráfica, o que causa uma enorme facilidade para as pessoas que tem o primeiro contato com este sistema operacional. Um modo legal de aprender a montar um dispositivo pelo Linux é através do console(terminal) , nunca se sabe como isto poder vir a ser útil algum dia.

Todos dispositivos do Linux normalmente estão localizados na pasta dev , no diretório raiz "/" ou seja dentro de /dev. Por exemplo minha hd é hda1 (/dev/hda1) ou meu pendrive sdb1 (/dev/sdb1).
Para montar um dispositivo através do terminal é preciso seguir alguns passo:

1°Passo - Criar um ponte montagem:
Cria-se uma pasta em algum ponto do computador para servir de ponto de montagem do dispositivo:
sudo mkdir /mnt/hdPessoal

2°Passo - Executar o comando montador de dispositivo, no caso minha está em /dev/hda1:

sudo mount /dev/hda1 /mnt/hdPessoal

O dispostivo estara montado em /mnt/hdPessoal. Para manipulação dos arquivos que estão no mesmo. Caso você queira desmontar o dispositivo basta utilizar o seguinte comando:

sudo umount /mnt/hdPessoal

Caso o dispotivo for uma cd um comando legal para tira o cd do leitor é eject (comando que abre abandeja do leito de cd. E eject -t que faz a bandeja voltar para seu devido lugar.

Exemplo (Abrir leitor):
eject

Exemplo (Fechar Leitor):
eject -t