Comandos e estruturas básicas de shell script
Publicado por Perfil removido (última atualização em 30/11/2009)
[ Hits: 9.017 ]
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 simples em Shell para testar se o kernel está com o patch KPTI habilitado
Projeto rodar League of Legends no Linux =)
Script para testar a conexão do computador
Instalação Zabbix-agent CentOS5
Descompactar todos os arquivos RAR de um diretório
O Journal no Linux para a guarda e consulta de logs do sistema
A evolução do Linux e as mudanças que se fazem necessárias desde o seu lançamento
Maquina modesta - a vez dos navegadores ferrarem o usuario
Fscrypt: protegendo arquivos do seu usuário sem a lentidão padrão de criptograr o disco
Sway no Arch Linux: configuração Inicial sem enrolação
Resolvendo o bloqueio do Módulo Warsaw no Arch Linux (Porta 30900)
Redirecionar tráfego para um link (0)
BigLinux 2026 Wallpapers animado (3)
Meu kde connect não funciona no debian (2)
Porque o elementaryOS adotou flatpaks (3)
Warsaw não é reconhecido no Google Chrome 147.0.7727.55 [RESOLVIDO] (10)









