SISTEMAS OPERACIONAIS
Shell Script - parte 1
O shell
- O “interpretador de comandos” ou “Shell” é um processo que, não faz parte do sistema operacional, porém faz uso pesado de muitos recursos dele.
- O Shell é a interface primária entre o usuário e o S.O.
- Quando um usuário efetua logon, o shell é inicializado.
-
Ao iniciar, o shell apresenta o prompt ($>) no terminal, indicando que ele já está pronto para receber um comando.
shell script
- Muito mais que um simples interpretador de comandos
- Lingugem de programação interpretada e poderosa
- Vamos criar o nosso primeiro script
- Abra um editor de texto
- Salve como olamundo.sh
- Não existe a necessidade da extensão, mas é uma boa prática já que permite identificação dos script
Shell Script
- Digite as seguintes instruções
#!/bin/bash
echo "Ola mundo"
- Abra um terminal e tente executar esse script
- ./olamundo.sh
- Não funciona pois não demos permissão de execução para ele, para resolver isso faça
- chmod +x olamundo.sh
- E volte a executar
comentários
- Para se fazer um comentário em um script, basta começar a linha com o caractere #.Vamos testar criando o seguinte script e nomeando com meuScript.sh
#!/bin/bash
#vai para o diretorio raiz
cd /
#lista os arquivos com a permissão devido ao parametro l
ls -l
echo "Esta foi a listagem de arquivos e diretorios dentro da raiz"
echo -n "O usuario logado no momento eh "
whoami
variáveis de ambiente
- O shell é executado em um ambiente que possui algumas definições e valores
- Esses valores são utilizados pelo próprio shell e outros programas para a configuração.
- As variáaveis de ambiente são responsáveis por guardar essas informações e podem ser de dois tipos
- Globais
- Locais
variáveis de ambiente
- Comandos para manipulação das variáveis de ambiente
- echo : exibe o valor da variável, a variável deve ser precedida de $
- printenv: lista as variáveis de ambiente
- export: exporta as variáveis locais
- unset: desaloca as variáveis
- Vamos testá-los!!!!
- Primeiro vamos listar as variáveis de ambiente para poder conhecê-las
- Depois vamos escrever o seguinte script....
variáveis de ambiente - globais
#!/bin/bash
#Pegando informacoes do usuario
echo "Users: $USER"
echo "Home: $HOME"
echo "UID: $UID"
- Não esqueçam de dar as permissões corretas para executar o script!!!!
variáveis de ambiente - locais
- Essas são as variáveis criadas pelo usuário e só existiram no terminal onde foram criadas a não ser que sejam exportadas
- Para criá-las basta colocar o nome = valor
- onde nome é o nome da variável
- valor é o valor associado a variável
- Exemplos:
- nome="Marcela"
- idade=30
- Para obter o valor de uma variável é necessário colocar o caractere $ na frente. Vamos ao exemplo
variáveis de ambiente locais
#!/bin/bash
#Teste de variaveis do usuario
idade=30
nome="Marcela Santos"
echo "A $nome tem $idade anos de idade"
variáveis locais
#!/bin/bash
echo "Teste de variaveis de usuario"
echo "---------------------------------"
echo "| |"
nome="Marcela"
echo "| O usuario $nome tem UID $UID|"
echo "---------------------------------"
variáveis de ambiente
- Abra um terminal e digite os comandos referentes as seguintes tarefas:
- crie uma variável teste com valor 5
- mostre o valor dessa variável
- abra um novo terminal
- lista os processos em execução
- mostre o valor da variável teste
- saia do segundo terminal
- exporte a variável teste
- realize os passos 3 a 6 novamente
- desaloque a variável teste
o comando read
- Para que se possa interagir com o que o usuário digitou no teclado podemos usar o comando read
- Sintaxe
- read nomevariavel
#!/bin/bash
variavel="Eu estou logado como usuário $USER"
echo $variavel
echo
variavel2="Meu diretório atual é o `pwd`"
echo $variavel2
operadores de redirecionamento
- ls >arq
- Redireciona a saida padrão
- date >> arq
- Concatena a saida padrão
- wc < arq.txt
- Redireciona a entrada padrão
- O comando wc faz uma contagem no arquivo de: linhas, palavras e bytes.
operador backtick ou crase
- Esse operador armazena a saída de um comando em uma variável
- Sintaxe
- variavel=`comando` ou variavel=$(comando),
#!/bin/bash
# a crase redireciona a saida para dentro da variavel
dia=`date`
echo "A data é: $dia"
operador crase e redirecionamento
- Vamos ver um exemplo mais elaborado, no qual é feito uma listagem de arquivos , essa listagem é redirecionada para um arquivo que é salvo com nome log+a data em que a listagem foi feita
#!/bin/bash
#Copiar a listagem de um diretorio para arquivos unicos, de acordo com #data e hora
arq=`date +%d%m%y%H%M`
ls -la /home/marcela_santos >> log.$arq
estrutura condicional - simples
- O if em shell script
#!/bin/bash
#exemplo de condicional simples em script
if cd /
then
echo "diretorio raiz encontrado"
fi
estrutura condicional - composta
#!/bin/bash
#exemplo de condicional simples em script
if ls /home/marcela_santos/teste
then
echo "diretorio teste encontrado"
else
echo "diretorio teste n encontrado"
fi
mais um exemplo de if composto
#!/bin/bash
echo -n "Digite o primeiro numero: "
read n1
echo -n "Digite o primeiro numero: "
read n2
if test $n1 -eq $n2
then
echo "Numero iguais"
fi
comparações
- -eq: Igual
- -ne :Diferente
- -gt: Maior
- -lt :Menor
- -o: Ou
- -d Se for um diretório
- -e Se existir
- -z Se estiver vazio
- -f Se conter texto
- -o Se o usuário for o dono
- -r Se o arquivo pode ser lido
- -w Se o arquivo pode ser alterado
Sistemas Operacionais - Shell Script Parte 1
By Marcela Santos
Sistemas Operacionais - Shell Script Parte 1
- 1,152