Mostrando postagens com marcador shell. Mostrar todas as postagens
Mostrando postagens com marcador shell. 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, 17 de maio de 2011

Utilizando SSH

Hoje vamos ver como é facil usar SSH para conectar em outras maquinas na sua rede Linux.


Instalação do SSH

Para instalar o servidor e client ssh em sua maquina é necessário seguir alguns passos.

1º Abra o terminal de seu linux e digite o seguinte comando:

sudo apt-get install ssh

instalação do ssh


2º Certifique-se que a maquina que você deseja conectar também tenha o servidor ssh instalado, caso a mesma não tenha instale-o, seguindo o passo acima na máquina destino.


Usando SSH  

 Agora que suas maquinas nas redes contém o ssh instalado, vamos começar a utiliza-lo.
 
Para conectar na máquina destino basta usar a seguinte sintaxe:

Sintaxe:

ssh @:

Exemplo:

ssh robson@10.1.1.120:/tmp




Conectando na máquina remota
*Será requerida a senha do pc destino, porém quando você começar a digitar não aparecerá nada, relaxe isso é normal.

Neste exemplo vou conectar na máquina 10.1.1.120 com o usuário robson e entrar na pasta /tmp

Agora vocẽ pode usar a maquina remota como se fosse a sua própria.


Utilizando programas da maquina remota


Assim como é possivel conectar a maquina remota é possivel utilizar os programas instalados na mesma como se fosse seus, e fazer com que os mesmo abram em sua tela. Para isto utilize o parametro -x quando o ssh foi executando.


Sintaxe:



ssh -x @:


Exemplo:


ssh -x robson@10.1.1.120:/tmp


Para utilizar o algum aplicativo basta digitar o nome do mesmo para abri-lo em seu monitor.

Executando firefox


Caso você deseje abrir o programa na maquina que você está conectado basta executar a seguinte linha de comando:



export DISPLAY=:0.0

Após isso todos programas executados serão abertos no display(monitor) do pc destino.