• Nenhum resultado encontrado

Shell Script. Rafael Silva Guimarães

N/A
N/A
Protected

Academic year: 2021

Share "Shell Script. Rafael Silva Guimarães"

Copied!
22
0
0

Texto

(1)

Shell  Script  

(2)

O  que  é  Shell

 

O Shell é o "prompt" da linha de comando do Linux, que recebe os comandos digitados pelo usuário e os executa.

Mas o Shell é muito mais poderoso que seu primo distante. Além dos comandos básicos para navegar entre diretórios e manipular arquivos, ele também possui todas as estruturas de uma linguagem de programação, como IF, FOR, WHILE, variáveis e funções. Com isso, também é possível usar o Shell para fazer Scripts e automatizar tarefas.

(3)

Shell  Script  

Um script é um arquivo que guarda vários comandos e pode ser executado sempre que preciso. Os comandos de um script são exatamente os mesmos que se digita no prompt, é tudo Shell.

 

Script em inglês significa roteiro. Para criar um script deve-se criar um arquivo texto com diversos comandos. E s t e s c o m a n d o s s e r ã o e x e c u t a d o s e m o r d e m . Exatamente como num roteiro.

(4)

Tipos  de  Shell  

● Ksh - Korn Shell (David G. Korn at AT&T Bell

Labs)

● Bsh – Bouner Shell (Steve Bourne 7ª versão do

UNIX Bell Labs)

● Csh – C like shell

(5)

Shell  Script  

Escolher o diretório onde colocar o script, para que o script possa ser executado de qualquer parte do sistema, mova−o para um diretório que esteja no seu PATH.

#echo $PATH

Para criar o arquivo e colocar nele os comandos use o VI ou VIM ou outro editor de textos de sua preferência para colocar todos os comandos dentro do arquivo.  

(6)

Shell  Script  

Colocar a chamada do Shell na primeira linha na primeira linha do script deve ser:

#!/bin/bash

Para que ao ser executado, o sistema saiba que é o Shell quem irá interpretar estes comandos.

 

Tornar o script o arquivo um executável, use o comando para que seu script seja reconhecido pelo sistema como um comando executável.

 

(7)

Parâmetros  de  Entrada  

Os argumentos da linha de comando são passados para o shell através da variável local $argv. Os campos individuais dessa variável podem ser acessados como em uma

variável local qualquer. Além disso, uma série de atalhos é definida para facilitar o acesso a esses parâmetros:

$0 : o nome do script

$n : o n-ésimo argumento da linha de comando $* : todos os argumentos da linha de comando $# : número de argumentos

$? : status do último comando executado (status <> 0 indica erro) $$ : número de processo (PID) do shell que executa o script

(8)

Testando  Parâmetros  de  Entrada  

“Começando  a  nerdisse”

 

#!/bin/bash

#exemplo de parâmetros de entrada echo "Nome do script : $0"

echo "Primeiro parâmetro : $1" echo "Todos os parâmetros : $*" echo "Numero de parametros : $#" echo "Numero deste processo : $$" exit 0

(9)

Começando  a  Brincadeira

 

Fazer um script chamado "sistema" e colocar estes comandos nele. O conteúdo do arquivo "sistema" seria o seguinte:

#!/bin/bash

date

df -h

w

(10)

Shell  Script  

Executar os três comandos seguidos resulta em um bolo de texto na tela, misturando as informações e dificultando o entendimento. É preciso trabalhar um pouco a saída do script, tornando−a mais legível.

Para usar o echo, basta colocar entre "aspas". Se nenhum texto for colocado, uma linha em branco é mostrada.

#!/bin/bash

echo "Data e Horário:" date

echo

echo "Uso do disco:" df

echo

echo "Usuários conectados:" w

(11)

Shell  Script  

Para o script ficar mais completo, vamos colocar uma interação mínima com o usuário, pedindo uma confirmação antes de executar os comandos.

#!/bin/bash

echo "Vou buscar os dados do sistema. Posso continuar? [sn] " read RESPOSTA

test "$RESPOSTA" = "n" && exit echo "Data e Horário:"

date echo

echo "Uso do disco:" df

echo

echo "Usuários conectados:" w

(12)

Exemplos:  

Fazer um script chamado “calc_idade.sh" e colocar estes comandos nele. O conteúdo do arquivo “calc_idade.sh" seria o seguinte:

#!/bin/bash

echo "Script para calcular a idade"

echo "Entre com o seu ano de nascimento: " read RESP

IDADE=$(($(date +%Y)-$RESP)) echo "Sua idade e $IDADE anos"

(13)

Exemplos:  

Fazer um script chamado “system.sh" #!/bin/bash

clear

echo "Hello, $USER" echo

echo "Hoje e `date`, estamos na semana `date +"%V"`." echo

echo "Usuarios conectados atualmente:" w | cut -d " " -f 1 - | grep -v USER | sort -u echo

echo "Este um sistemas operacional `uname -s`" echo

echo "Tempo de uptime" uptime

(14)

Comandos  test  

O canivete suíço dos comandos do shell é o "test", que consegue fazer vários tipos de testes em números,

textos e arquivos. Ele possui várias opções para indicar que tipo de teste será feito.

(15)

Comandos  teste  

Comparações entre números

-eq : igual a

-ne : diferente de -gt : maior que

-ge : maior ou igual a -lt : menor que

-le : menor ou igual a

-a : AND binário (bit a bit) -o : OR binário (bit a bit)

Associações entre condições

&& : AND lógico || : OR lógico

Comparações entre strings usando []

= : igual a

!= : diferente de

(16)

Conceitos  Avançados

 

Assim como os comandos do sistema que

possuem e opções e parâmetros, os scripts

também podem ser preparados para receber

dados via linha de comando.

• Dentro do script, algumas variáveis especiais são

definidas automaticamente, em especial, "$1"

contém o primeiro argumento recebido na linha de

comando, "$2" o segundo, e assim por diante.

(17)

Operador  if  

if comando 1 then ... elif comando 2 then ... else ... fi Exemplo 2:

echo "Compara dois numeros" echo "Escreva primeiro numero:" read n1

echo "Escreva segundo numero:" read n2 if [ $n1 -eq $n2 ]; then echo "$n1 == $n2" else echo "$n1 >< $n2" fi Exemplo 1:

Echo “ Digite um numero”

read VAR

if [ $VAR -ge 10 ] && [ $VAR -le 20 ]; then

echo “Seu número esta entre 10 e 20!" else

echo "$VAR" fi

(18)

Operador  for  

for VAR in LISTA; do comandos

done

Desafio:

Crie um shell script para criar pasta com nome DIRXX,

onde XX varia de 01 a 99. Dica: use o operador for com comando printf para gerar o nome das pastas a criar.

Exemplos for:

for i in $(seq 1 10); do echo $i; done for ((i=1;i<11;i++)); do echo $i; done

(19)

Operador  while  

while CONDIÇÃO; do ....comandos... done Desafio:

Escreva um shell script que execute uma contagem até um numero informado pelo usuario e vai informando esse numero na tela. Exemplos while: i=1 while [ $i -le 100 ]; do echo "$i" i=$((i+1)) done

(20)

Operador  case  

O comando case é um pouco difícil de se usar. Também um pouco difícil de se acostumar. Ele compara uma variável passada e vai comparando com cada valor listado. A sintaxe é assim:

case <variável> in

<algo_para_comparar>1) <comando>1 ; <comando>2 ;; <algo_para_comparar>2) <comando>3 ; <comando>4 ;; <algo_para_comparar>n) <comando>n ; <comando>n+1 ;; *) echo "Você tem de entrar com um parâmetro válido" ;; esac

Desafio:

Crie um menu com 4

opções onde a ultima opção é sair.

(21)

Menu  

while : ; do echo -n " ---Administrar usuarios--- 1 - teste1 2 - teste2 3 - Sair

---Escolha uma das opcao:" read opcao case "$opcao" in 1)echo "teste1";; 2)echo "teste2";; 3)exit;; esac done Exemplo case: case $1 in

"list") echo "Listar!";; "ni!") echo "Ni!";;

*) echo "Não conheço $1";; esac

(22)

Exemplo  PráDco  

Criar um software em bash com os seguintes itens: -  Cadastrar Usuário. -  Deletar Usuário. -  Exibir Usuários. -  Adicionar Grupo. -  Deletar Grupo.

-  Adicionar Usuário ao Grupo. -  Listar Usuários do Grupo.

Referências

Documentos relacionados

Corporate Control and Policies Page 12 UNIVERSIDAD DE PIURA UNIVERSIDAD DEL PACÍFICO UNIVERSIDAD ESAN UNIVERSIDAD NACIONAL AGRARIA LA MOLINA UNIVERSIDAD NACIONAL

O produto a ser ofertado pela MultiFit Gourmet será um tipo de alimentação voltada para pessoas que fazem musculação, que precisam se alimentar de maneira

Assim, ressalta-se a impor- tância da revalorização e preservação do patrimônio histórico, cultural e público, entre os quais estão as praças Nauro Machado, do Pescador e do

A Farmorubicina Cs e Farmorubicina CS 200 mg não pode ser misturada com outros fármacos citotóxicos no mesmo frasco ou seringa, durante a administração de

A Tabela 6 identifica as categorias de CI mais empregadas nos estudos investigados. Percebe-se que as categorias empregadas referem-se a categorias que mesclam a

autoincriminação”, designadamente através da indicação de exemplos paradigmáticos. Sem prejuízo da relevância da matéria – traduzida, desde logo, no número e

Este trabalho buscou, através de pesquisa de campo, estudar o efeito de diferentes alternativas de adubações de cobertura, quanto ao tipo de adubo e época de

A Floresta Ombrófila Densa Montana, preservada pelo Parque Nacional, apresentou quantidade média anual de serrapilheira semelhante à de outros fragmentos florestais de