Comandos e estruturas básicas de shell script
Publicado por Perfil removido (última atualização em 30/11/2009)
[ Hits: 8.884 ]
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 para verficar se um pacote está instalado no Slackware
Como extrair chaves TOTP 2FA a partir de QRCODE (Google Authenticator)
Linux em 2025: Segurança prática para o usuário
Desktop Linux em alta: novos apps, distros e privacidade marcam o sábado
IA chega ao desktop e impulsiona produtividade no mundo Linux
Novos apps de produtividade, avanços em IA e distros em ebulição agitam o universo Linux
Como instalar o repositório do DBeaver no Ubuntu
Como instalar o Plex Media Server no Ubuntu
Digitando underscore com "shift" + "barra de espaços"
Como ativar a lixeira e recuperar aquivos deletados em um servidor Linux
Como mudar o nome de dispositivos Bluetooth via linha de comando
O programa assinador digital (1)
PIP3 - erro ao instalar módulo do mariadb para o Python (9)
É normal não gostar de KDE? (8)
dpkg: erro: gatilho de arquivo duplicado chamado pelo arquivo de nome (6)









