Programa de músicas
Publicado por Alentz (última atualização em 08/07/2016)
[ Hits: 4.904 ]
Download 1466206471.programa (versão 2)
O programa serve pra visualizar as músicas que estão na sua pasta Música, tocar música pedida e tocar todas em sequência.
Este é meu primeiro script, depois que li o artigo: https://www.vivaolinux.com.br/artigo/Introducao-ao-Shell-Script-1/
Criei este script voltado pra iniciantes como eu, expliquei todas as linhas que escrevi pra um bom entendimento do código (assim espero :D ).
Para o programa rodar precisa ter instalado o mpg321:
$ sudo apt-get install mpg321
IMPORTANTE! Na primeira vez que for rodar o programa, digite:
$ ./programa instalar
ou
$ bash programa instalar
isso vai criar 1 diretório e 3 arquivos na sua pasta pessoal, importantes pra interação do programa, se tiver dúvidas de onde será criado o diretório e os arquivos dê uma visualizada no começo do script.
Caso encontre algum erro no código ou uma opção melhor de comandos pra implementar no programa me mande por e-mail : lexandre.199713@hotmail.com
Versão 2 - Enviado por Alentz em 17/06/2016
Changelog: O programa serve pra visualizar as músicas que estão na sua pasta Música, tocar música pedida e tocar todas elas em sequência.
Este é meu primeiro script, depois que li o artigo: https://www.vivaolinux.com.br/artigo/Introducao-ao-Shell-Script-1/
Criei este script voltado pra iniciantes como eu, expliquei todas as linhas que escrevi pra um bom entendimento do código (assim espero :D ).
Para o programa rodar precisa ter instalado o mpg321:
$ sudo apt-get install mpg321
IMPORTANTE! Na primeira vez que for rodar o programa, digite:
$ ./programa instalar
ou
$ bash programa instalar
Esse parâmetro "instalar" vai criar 1 diretório e 3 arquivos na sua pasta pessoal, importantes pra interação do programa, se tiver dúvidas de onde será criado o diretório e os arquivos dê uma visualizada no começo do script.
Importante : Para encerrar uma música ou passar de música , aperte Ctrl + c .
Caso encontre algum erro no código ou uma opção melhor de comandos pra implementar no programa me mande por e-mail : alexandre.199713@hotmail.com
#!/bin/bash
# pra rodar esse script é importante usar primeiro um dos comandos ./programa instalar ou bash programa instalar
# depois de ter feito isso não é necessário repetir o comando . Use ./programa ou bash programa
usuário=$(whoami) # essa variável vai ter o valor do usuário que estiver rodando o programa .
$1 # esse parametro serve pra instalar o programade musica .Ex : ./programa instalar ou bash programa instalar
if [ "$1" = "instalar" ];then # verificando o valor do parametro dado , se o valor do parametro $1 não for dado ,
# o programa não ira rodar perfeitamente .
mkdir /home/$usuario/programademusica # criando pasta pro programa , na pasta pessoal do usuario .
touch /home/$usuario/programademusica/localdemusicas # arquivo pra interação do programa
touch /home/$usuario/programademusica/musica # arquivo pra interação do programa
touch /home/$usuario/programademusica/playlist # arquivo pra interação do programa .
fi
lista(){ # primeira função , lista as musicas que estiverem na pasta Música na pasta pessoal do usuario ($usuario)
ls /home/$usuario/Música > /home/$usuario/programademusica/localdemusicas # aqui ele lista com o ls a pasta Música e manda usando ">"
# pro arquivo localdemusicas , criado no comeco do script .
faixas=$(cat /home/$usuario/programademusica/localdemusicas) # variavel faixas vai ter valor do arquivo localdemusicas .
# localdemusicas tem o valor do ls dado na pasta Música .
if [ -n "$faixas" ];then # nessa parte eu verifico se tem musicas na pasta Música ,
# se tiver mostra na tela o arquivo localdemusicas se não vai pro menu .
# o -n (não nulo) verifica se na variavel faixas tem valor , no caso musicas .
clear # limpa a tela
echo # pula linha
figlet MUSICAS # figlet é o comando que deixa a palavra ou texto, legal .
echo # pula linha
cat /home/$usuario/programademusica/localdemusicas # vai listar na tela as musicas , que estão listadas no arquivo localdemusicas
echo # pula linha
echo # pula linha
echo SELECIONE A FAIXA DA MUSICA . # pede pra selecionar a faixa .
read numerodamusica # pegando a faixa dada
escolha # vai pra função escolha
else # se na comparação do if , faixas não tiver valor (musicas) , vai pro menu .
echo VOCE NÃO TEM NENHUMA MUSICA ! # informa que não tem musica
read # dando um tempo pro usuario ler a informação .
menu # vai pra função menu , essa função esta no final do script .
fi
}
escolha(){ # os comandos que estão nessa função podiam estar dentro da função lista entre o if ,
# mas achei melhor separar . uma tentativa de deixar mais legivel o script ^^
clear # limpa a tela
figlet musica # figlet , comando pra deixar a letra bacana
sed -n "$numerodamusica"p /home/$usuario/programademusica/localdemusicas > /home/$usuario/programademusica/musica
# aqui entra o sed , ele vai pegar a parte da linha informada pela variavel $numerodamusica no arquivo localdemusicas .
# depois de pego vai mandar o resultado pro arquivo musica .
pegando=$(cat /home/$usuario/programademusica/musica) # $pegando vai pegar como valor o arquivo musica .
# O que tem dentro do arquivo musica é o resultado do comando sed .
mpg321 /home/$usuario/Música/"$pegando" # mpg321 aciona a musica .
#é essa linha do codigo que eu gosto , usei duas variaveis importantes pro script pra indicar o caminho pro mpg321 .
#e tbm é nessa linha q torna o script funcional com qualquer usuario e musica .
menu # vai pra função menu depois que acabar a musica .
}
playlist(){ # função pra tocar todas musicas que estiverem na pasta Música
proximo=$'1' # definindo a variavel pro loop e comparação .
while [ $proximo > 0 ];do
sed -n "$proximo"p /home/$usuario/programademusica/localdemusicas > /home/$usuario/programademusica/playlist
# esse sed é quase igual o da função escolha . ele não usa read pra pegar valor , usa a variavel $proximo pra dar continuação nas musicas .
# tbm esse sed envia o resultado pra um outro arquivo , a playlist .
pegando=$(cat /home/$usuario/programademusica/playlist)
# essa variavel $pegando vai servir pra verificar se ainda tem musicas para serem tocadas .
if [ -z "$pegando" ];then # -z (nulo), se não tiver valor ( musicas para serem tocadas ) ir pro menu .
menu # indo pra função menu .
else # se caso $pegando tiver valor , pode continuar com o codigo .
clear #limpa a tela
figlet PLAYLIST # letra bacana
echo
mpg321 /home/$usuario/Música/"$pegando"
# mpg321 toca a musica dada pela variavel pegando . O valor dela é o resultado do comando sed la em cima .
proximo=$(($proximo + 1)) # aqui ele vai aumentar o valor de $proximo pra +1 .
# criando um loop . Só irá parar quando a variavel pegando não tiver valor ^^ ,
# quando passar pelo if e $pegando n tiver valor (musicas) o programa ira pro menu .
fi
done # volta pro while ^
}
menu(){ # função menu , aqui o programa só ira se apresentar .
clear
echo
echo -e "\033[01;33m" # \033[00;33m cor amarela no texto .
figlet BEM VINDO
sleep 1 # dorme durante 1 segundo
echo
echo "=================================="
echo "= ESTE É O PROGRAMA DE MÚSICAS. ="
echo "= VOCE PODE VISUALIZAR SUAS ="
echo "= MUSICAS , PRODUZILAS E ="
echo "= ESCUTAR TODAS EM SEQUENCIA. ="
echo "=================================="
echo -e "\033[01;31m=================================="
echo "= Autor: Alentz ="
echo -e "==================================\033[01;31m" # aqui quebro a cor amarela e coloco a vermelha , 31m
sleep 2 # 2 segundos
echo
echo
echo -e "OQUE VOCE DESEJA ACESSAR ? INFORME COM O NUMERO !"
sleep 1
echo
echo -e "\033[01;33m=================================" # volta pra amarela 33m
echo "=== 1 ) Titulos ==============="
echo "=== 2 ) Reproduzir todas ========"
echo "================================="
read acesso # pega o valor dado pelo usuario
if [ "$acesso" = "1" ];then
lista # vai pra função lista
fi
if [ "$acesso" = "2" ];then
playlist # aqui pra playlist
fi
}
menu # começa o programa . Chamo a função menu .
for((loop=2;loop>1;loop++))do # este for é pra caso se o usuario digitar errado ele vai ser direcionado denovo pro menu .
menu
done
Backup Diario excluindo o antigo
Redimensionar várias imagens ao mesmo tempo
Capturando tela em modo gráfico (Melhorado)
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
Instalando partes faltantes do Plasma 6
Adicionar botão "mostrar área de trabalho" no Zorin OS
Como montar um servidor de backup no linux
Estou tentando ser legalista, mas tá complicado! (9)
espelhar monitores nao funciona (2)
SQLITE não quer funcionar no LINUX LMDE6 64 com Lazaruz 4.2 64bit (n... (1)









