Mostrando postagens com marcador criar. Mostrar todas as postagens
Mostrando postagens com marcador criar. 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.





quinta-feira, 29 de março de 2012

Montando e conectando em um servidor NFS

Introdução


Uma maneira simples de compartilhar arquivos pela rede é através de um servidor NFS (Network File System), com ele é possivel montar um diretório remoto como se fosse apena uma pasta simples em seu computador.

Instalação


O processo de instalação é bem simples basta abri o terminal e executar o comando:


sudo apt-get install nfs-kernel-server 


  




 Configuração do servidor


O processo de configuração do servidor é bem simples basta editar o arquivo exports localizado em /etc/exports



Onde a sintaxe simples é:

  (diretorio_a_ser_liberado) (host)(permissao)

Exemplo:

  /home/mago/teste_nfs 192.168.0.127(rw)




Neste exemplo é dado a permissão de leitura(r) e escrita(w) do diretório /home/mago/teste_nfs para o host 192.168.0.127.

Caso o objetivo fosse liberar todos a pasta para qualquer computador seria necessário apenas colocar um asterisco (*) no local do host como pode ser visto abaixo:

   /home/mago/teste_nfs *(rw)


Agora basta apenas reiniciar o  servidor nfs.


Sintaxe:

   sudo service nfs-kernel-server restart



Conectando ao servidor

O processo para montar um diretório liberado no servidor é bem simples. Basta utilizar a seguinte sintaxe:


sudo mount -t nfs  (host):(diretorio_a_ser_montado) (diretorio_destino)


Exemplo:

sudo mount -t nfs 192.168.0.127:/home/mago/teste_nfs /tmp/teste





Agora é possivel utilizar o arquivos do diretório /home/mago/teste_nfs do ip 192.168.0.127 como se fosse um diretório do seu próprio  computador.


Abaixo é possivel ver o diretório montado.



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, 23 de agosto de 2011

Criar programa java sem eclipse e netbeans

Logo que começamos a programar utilizamos alguma ferramenta(eclipse, netbeans, blueJ, jCreator,etc) para nos auxiliar. Porém imagine um cenário que não temos por algum motivo alguma destas ferramentas de desenvolvimento, como seria feito um programa java? Abaixo vou explicar uma maneira simples de criar um programa em java e executa-lo através do terminal no linux.


1º Crie um arquivo no gedit ou qualquer outro editor de sua preferencia.

Sintaxe:

gedit arquivo.java

arquivo.java - Arquivo .java que será criado.

Exemplo:

gedit Tabuada.java






2º Edite o seu código como o de costume no gedit.


3º Salve o código fonte e execute o "complilador"

Sintaxe:

javac arquivo.java

arquivo.java - O arquivo .java criado em seu editor.

Exemplo:

 javac Tabuada.java
 

4º Execute o .class gerado neste caso o arquivo chamará Tabuada.class

Sintaxe:

javac arquivo

arquivo - Nome do arquivo .class gerado.


Exemplo:

javac Tabuada




Exemplo 2:

java Tabuada 2 3



sexta-feira, 8 de julho de 2011

Criar exceções



Assim como qualquer objeto, em java também é possível criar suas próprias exceções. Imagine um cenário que nenhuma exceção existente faça sentido para ser lançada por você. Por exemplo imagine que por algum motivo você precisa que uma exceção seja lançada quando a letra “A” ou “a” não existe e determinada frase, como não existe nenhuma exceção específica para este caso será necessário criar uma exceção.


Criando uma exceção para ser lançada toda vez que uma letra “A” ou “a” não é encontrada em uma determinada frase.

public class SemLetraAException extends Exception {
@Override
public String getMessage() {
return "Não existe letra A em sua frase";
}

}
Toda exceção criada deve estender Exception, neste exemplo foi sobrescrito o método getMessage()
, que é exibida no prompt toda vez que a exceção é lançada.

Utilizando a exceção

Abaixo segue um exemplo que é utilizado a exceção criada acima.

public class TesteExcecao {

public static void main(String args[]) throws SemLetraAException {
String frase = "Sou um teste!";
if(!frase.contains("a") || !frase.contains("A"))
throw new SemLetraAException();
}
}

Quando o programa acima fosse executada uma exceção do tipo SemLetraAException() será lançada, abaixo é está a saida exibida no prompt:

Exception in thread "main" SemLetraAException: Não existe letra A em sua frase
at TesteExcecao.main(TesteExcecao.java:8)

sexta-feira, 6 de maio de 2011

Criando e usando arquivos de propriedades em java





Há momento que precisamos rodar algum .jar ou até mesmo um programa e precisamos mudar algum parametro que o mesmo utiliza sem mecher no código fonte, uma solução simples para este problema é utilizar arquivos de propriedades.
Abaixo vamos ver uma maneira simples de criar uma arquivo de propriedades e fazer com o seu programa java leia o  mesmo.



1º Crie o arquivo de propriedade.
  

O arquivo de propriedade nada mais que um arquivo com extenção .properties. O mesmo deve ser salvo em algum pré-determinado em seu programa java, para que o mesmo seja lido, nesse exemplo o meu arquivo de properties foi salvo dentro do projeto em uma pasta com o nome properties. Você pode salvar o seu arquivo de propriedades em qualquer lugar do seu computador, porém não se esqueça de colocar sua localização correta no seu programa.






Conteúdo do arquivo de propriedades:


prop.nome = Mario
prop.dir = /tmp 





2º Crie um programa para ler o arquivo de propriedade.










Conteúdo do programa:


import java.io.FileInputStream;
import java.io.IOException;
import java.util.Properties;

/**
 *
 * @author Robson Fernando Gomes
 * http://maguscode.blogspot.com
 *
 */
public class ArquivoDePropriedades {

   
    public static Properties getProp() throws IOException
    {
        Properties props = new Properties();
        FileInputStream file = new FileInputStream("./properties/dados.properties");
        props.load(file);
        return props;
       
    }
   
    public static void main(String args[]) throws IOException
    {
        System.out.println("**********Teste usando arquivo de propriedades**********");
        Properties prop = getProp();
        System.out.println("Nome = "+prop.getProperty("prop.nome"));
        System.out.println("Diretorio = "+prop.getProperty("prop.dir"));
    }
}





O código pode ser simplicado da seguinte maneira:


No primeiro método da classe:


Properties props = new Properties(); - Instancia-se a classe Properties

FileInputStream file = new FileInputStream("./properties/dados.properties"); - Mostra a localização do arquivo .properties


  props.load(file); - Carrega o arquivo na variavel props.





No segundo método da classe:




Properties prop = getProp(); - Obtém o objeto Properties.
System.out.println("Nome = "+prop.getProperty("prop.nome")); - Pega-se a propriedade do item prop.nome.


System.out.println("Diretorio = "+prop.getProperty("prop.dir"));
- Pega-se a propriedade do item prop.dir.







Resultado da execução do programa:








Saída:










**********Teste usando arquivo de propriedades**********
Nome = Mario
Diretorio = /tmp