Programacao do Shell
Programação do Shell
A programação do Shell permite que o administrador crie pequenos programas para automatizar a administração do sistema, como por exemplo, uma sequência de comandos para realizar backup de dados.
Um programa Shell, ou script shell, é criado em um arquivo de texto contendo comandos do Linux, e pode incluir variáveis, realização de testes, laços de repetição, comentários, etc.
Um programa Shell é interpretado linha a linha pelo Shell, portanto, não é um programa a ser compilado [1].
Comandos básicos
Um script shell inicia com a definição de qual será o Shell interpretador do comando, por exemplo:
#!/bin/bash
Como todo programa, recomenda-se a inclusão de comentários para descrever a função do script e facilitar sua compreensão. Todo comentário inicia com o caractere #, com exceção da linha de definição do Shell interpretador.
Exemplo de script que imprime uma frase [1]:
#!/bin/bash #Este script imprime uma frase echo "Alo $USER, bom dia!"
- No exemplo é utilizada a variável $USER que retorna o nome do usuário.
O script deve ser salvo em um arquivo com a extensão .sh (exemplo: alo.sh) e deve ter permissão de execução:
chmod +x alo.sh
Para executá-lo, chamar pelo nome do arquivo, por exemplo:
./alo.sh
Variáveis e argumentos
- Variáveis internas do Shell
- O Shell possui várias variáveis internas, como por exemplo $USER, $HOME, $SHELL, $PATH, etc.
- Uma lista das variáveis internas do Shell pode ser obtida com o comando:
printenv
- Variáveis definidas pelo usuário
- O usuário pode definir variáveis dentro de um script e associar valores a elas, por exemplo:
var="valor"
- O valor pode ser uma frase, numero, comando ou outra variável.
- O valor pode ser expressado entre as aspas (“ ”), apóstrofos (' ') ou crases (` `):
- aspas (“ ”): interpretam as variáveis que estiverem dentro do valor;
- apóstrofos (' '): leem o valor literalmente, sem interpretar nada;
- crases (` `): interpretam um comando e retornar a sua saída para a variável.
Exemplos [2]:
var="Eu sou o usuário $user" echo $var Eu sou o usuário evandro
var='Eu sou o usuário $user' echo $var Eu sou o usuário $user
var="Meu diretório atual é o `pwd`" echo $var Meu diretório atual é o /home/evandro
- Variáveis passadas como argumentos
- Um script pode manipular variáveis que recebem valor de argumentos passados quando o script é chamado.
- Internamente ao script, as seguintes variáveis são utilizadas:
- '$0' retorna o nome do script;
- '$1 a $9' retorna valor dos argumentos passados na chamada do script;
- '$#' retorna o número de argumentos;
- '$*' retorna todos os argumentos.
Exemplo:
#!/bin/bash #Este script verifica se há dois argumentos #e realiza a soma dos mesmos if [ $# -eq 2 ] then soma=`expr $1 + $2` echo "Soma = $soma" else echo "Usar 2 argumentos" fi
- Variáveis cujo valor é requisitado ao usuário pelo script
- Como qualquer linguagem de programação o usuário pode ser solicitado a fornecer um valor, o qual será lido pela função read e armazenado em uma variável.
:Exemplo: #!/bin/bash #Este script requisita que o usuário digite um valor echo -n "Por favor, digite seu nome: " read nome echo "Seu nome é $nome"
Estruturas de controle
- if
- Implementa o clássico if-then-else.
Exemplos:
#!/bin/bash if [ $HOME = `pwd` ] then echo "Você está no diretório home." else echo "Você está no diretório `pwd`" fi
- case
- Implementa um if múltiplo.
Exemplo:
Referências
- ↑ 1,0 1,1 VALLE, O. T. Adminstração de Redes com Linux: Fundamentos e práticas, IFSC, Florianópolis, 2010.
- ↑ http://www.devin.com.br/shell_script/
--Evandro.cantu (discussão) 10h23min de 4 de novembro de 2015 (BRST)