Comandos e estruturas básicas de shell script
Publicado por Perfil removido (última atualização em 30/11/2009)
[ Hits: 8.949 ]
Segue um script básico criado por mim para apresentar à turma de sistemas operacionais abertos, do professor Robson Vaz, que contém exemplos básicos de FUNÇÃO, IF, CASE etc.
Dá uma ideia legal de como usar tais ferramentas na construção de um script mais elaborado.
Como disse, é um script simples onde desmonta cdrom, abre bandeja, fecha.
Espero que ajude aos amigos que estão começando nesse mundo de script. E que os comandos sirvam de consulta aqui no VOL e outros sites relacionados a Linux e scripts.
Abs a todos!
#!/bin/bash
#Função GUI
GUI(){
while : ; do
# Mostra o menu na tela, com as ações disponíveis
opcao=$(
dialog --stdout \
--title 'Desmontando Cdrom' \
--menu 'escolha a opção que deseja executar e precione Enter:' \
0 0 0 \
1 'Desmontar CdRom' \
2 'Abrir bandeja Cdrom' \
3 'Fechar bandeja Cdrom' \
4 'Sair do Script' )
# Caso seja apertado Cancelar ou ESC...
[ $? -ne 0 ] && main
# Executa o que foi escolhido
case "$opcao" in
1) umount /dev/cdrom ;;
2) eject ;;
3) eject -t ;;
4) break;;
esac
done
# Mensagem de saida
echo 'Volte Sempre!'
echo "http://www.vivaolinux.com.br/~clemiltonoliver"
echo " "
sleep 2
main
} #Fim da Função GUI
#----------------------------------------------------------------------------------------
#Função que verifica se Cdrom esta desmontado
ver_cd (){
if ! fgrep -q "/media/cdrom" /etc/mtab; then
echo Cdrom não esta montado
else
echo "Desmontando CDROM..."
echo Aguarde...
for ((i=0;i!=5;i++)); do
sleep 1
echo -ne "##########"
done
umount /dev/cdrom
fi
} #Fim da Função que verifica Cdrom montado
#----------------------------------------------------------------------------------------
#Função MAIN
main(){
clear
echo " "
echo '*******************************************************************************'
echo '* ..............................::Creditos::................................. *'
echo '* Scritp criado pelo Aluno: Clemilton Oliveira - Matricula 5403442 *'
echo '* Apresentado à disciplina de Sistemas Operacionais Abertos do Curso Tec. em *'
echo '* Analise de Sistemas - Faculdade Unigranrio *'
echo '* Professor: Robson Vaz *'
echo '*******************************************************************************'
echo " "
echo "Digite a opção que deseja executar:"
echo " "
echo "1) Desmontar Cdrom"
echo "2) Abrir bandeja Cdrom"
echo "3) Fechar bandeja Cdrom"
echo "4) Interface Grafica (Dialog)"
echo "5) Sair do Script"
#Variavel de entrada de dados - Recebe o que foi digitado no prompt
read opcao
#Opção 1
if [ "$opcao" = "1" ]; then
ver_cd
echo " "
sleep 3
main
fi
#Opção 2
if [ "$opcao" = "2" ]; then
echo Abrindo bandeja...
echo Aguarde...
for ((i=0;i!=5;i++)); do
sleep 1
echo -ne "##########"
done
eject
echo " "
echo " "
echo "Bandeja Aberta!"
sleep 3
main
fi
#Opção 3
if [ "$opcao" = "3" ]; then
echo Fechando bandeja...
echo Aguarde...
for ((i=0;i!=5;i++)); do
sleep 1
echo -ne "##########"
done
eject -t
echo " "
echo " "
echo "Bandeja Fechada!"
sleep 3
main
fi
#Opção 4
if [ "$opcao" = "4" ]; then
GUI
fi
#Opção 5
if [ "$opcao" = "5" ]; then
clear
echo " "
echo "Volte Sempre!!!"
echo "http://www.vivaolinux.com.br/~clemiltonoliver"
echo " "
exit 1
fi
} #Fim da função "MAIN"
#Chamada da Função principal MAIN
main
Script que exibi informações do sistema
Renomear todos os arquivos com uma determinada caracteristica
Criar senha para abrir determinado programa
Rotina de Vacuum para banco de Dados Postgres
Cirurgia para acelerar o openSUSE em HD externo via USB
Void Server como Domain Control
Modo Simples de Baixar e Usar o bash-completion
Monitorando o Preço do Bitcoin ou sua Cripto Favorita em Tempo Real com um Widget Flutuante
Opções secretas em tema do Cinnamon
Como mapear unidade de rede no Linux
Como quebrar senha usando john the ripper
Alguém já testou o novo COSMIC Desktop? O que achou? (5)
Alguém pode me indicar um designer freelancer? [RESOLVIDO] (2)
Por que passar nas disciplinas da faculdade é ruim e ser reprovado é b... (2)









