textModeMusicPlayer
Publicado por José Lopes 12/08/2006
[ Hits: 4.500 ]
Homepage: https://lopes.id
Este script recebe um parâmetro, especificando se as músicas devem ser tocadas continuamente ou aleatóriamente e o repositório de músicas e gerencia a execução das músicas. Roda totalmente em modo texto sendo útil pra quem utiliza este ambiente e está cansado de ter que trocar toda hora de música, manualmente. Caso o player que o script utiliza (SOX) não esteja instalado, pode-se inserir chamada para outro facilmente.
#!/bin/bash
# AUTHOR ......: José Lopes de Oliveira Júnior
# NAME ........: textMusicModePlayer
# VERSION .....: 0.5
# DESCRIPTION .: Este script cria uma interface entre o usuário e seu player de
# música de modo texto, possibilitando que o usuário escolha como quer ouvir
# suas músicas (de forma contínua ou aleatória) e informando o diretório onde
# se encontram as músicas. Feito isso, o script se encarrega de gerenciar a
# forma com que as músicas são tocadas, evitando que o usuário tenha que, a
# todo momento, mandar tocar outra música.
# WARNINGS ....: Este script usa o comando PLAY, do pacote SOX (Sound eXchange),
# por isso requer que este pacote esteja instalado e configurado no sistema.
# O usuário deve se lembrar que, ao informar o diretório onde se encontram
# as músicas, o caminho completo do mesmo deve ser informado. Além disso,
# é de suma importância que hajam APENAS músicas neste diretório e que,
# nos nomes dos arquivos das músicas, NÃO hajam espaços! Caso estes avisos
# não sejam observados, o autor não garante como o script se comportará.
# FUNÇÕES NECESSÁRIAS AO SCRIPT
# usage
# Mostra ao usuário, a maneira correta de se usar o script.
usage()
{
echo "Usage $0 [options] [musics_complete_path]"
echo "Where options is \"-c\" or \"-s\", to play"
echo " continous ou shuffle."
exit 1
} # usage
# playContinous
# Toca a listagem de músicas de forma contínua - da primeira até a última música.
playContinous()
{
i=1
# Varia, da primeira, até a última música.
while [ $i -le $NFILES ]; do
# Obtém a música, na posição escolhida aleatóriamente.
MUSIC=`echo $FILES | cut -d ' ' -f $i`
# Gera o caminho completo da música.
MUSICPATH=$REPOSITORIO/$MUSIC
# Toca a música...
play $MUSICPATH 2> /dev/null
# Incrementando a variável de controle, em um.
i=`echo "$i + 1" | bc`
done
} # playContinous
# playShuffle
# Toca a listagem de músicas de forma aleatória, infinitamente.
playShuffle()
{
# Loop eterno.
while [ 7 = 7 ]; do
# Escolhe um número aleatório, entre 1 e o número de arquivos.
((NUMBER=RANDOM%NFILES+1))
# Obtém a música, na posição escolhida aleatóriamente.
MUSIC=`echo $FILES | cut -d ' ' -f $NUMBER`
# Gera o caminho completo da música.
MUSICPATH=$REPOSITORIO/$MUSIC
# Toca a música...
play $MUSICPATH 2> /dev/null
done
} # playShuffle
# ---> INÍCIO DA EXECUÇÃO DO SCRIPT
# Verificando o número de parâmetros passados ao script.
if [ $# -lt 2 ]; then
usage
fi
# O caminho COMPLETO do repositório, passado ao script.
REPOSITORIO=$2
# A listagem dos arquivos do repositório.
FILES=`ls -1 $REPOSITORIO`
# O número de arquivos do repositório.
NFILES=`echo $FILES | wc -w`
# Avaliando a opção passada ao script.
case "$1" in
"-c")
playContinous
;;
"-s")
playShuffle
;;
*)
usage
;;
esac
# Se chegar aqui, sai com sucesso...
exit 0
Envia e-mail notificando configurações de uma máquina
Atualizando o sistema no Debian
Retirar o link do download de páginas protetoras
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
É normal não gostar de KDE? (9)
Linux é a solução para o fim do Windows10? (2)
Problemas com Driver NVIDIA (4)









