Desligando o computador quando acabarem as músicas na sua lista de reprodução do MPD
Publicado por Vinícius dos Santos Oliveira (última atualização em 19/02/2014)
[ Hits: 6.260 ]
Homepage: https://vinipsmaker.github.io/
Download shutdown_on_mpd_stop.sh
O título é autoexplicativo.
Sobre o "#!/usr/bin/env bash", podemos quebrar em duas partes:
O sheebang é a forma padrão de especificar que um certo arquivo é um script.
O "/usr/bin/env" tem um artigo na Wikipédia só para ele ( https://pt.wikipedia.org/wiki/Env ) e várias perguntas/respostas no StackOverflow.
O comando grep é usado para filtrar a saída do comando mpc.
A opção "-F" tem o mesmo efeito do comando fgrep, mas é preferível devido a recomendação da manpage, "Direct invocation as either egrep or fgrep is deprecated".
A opção "-q" é usada por questões de desempenho. Como só estamos interessados em saber se o padrão "playing" está presente ou não, não faz sentido imprimir as ocorrências e, também, não faz sentido continuar a busca após descobrir que a ocorrência existe. Além do desempenho, nós realmente não queremos que a saída seja impressa.
A opção "-s" é usada para suprimir mensagens de erro.
Algumas pessoas gostam também de especificar a opção "-o", para instruir o grep a só imprimir o padrão que foi pesquisado, mas é inútil dada que a opção "-q" foi utilizada. Talvez seja útil como uma garantia maior em ambientes diferentes que usam implementações diferentes do bash, mas já utilizamos comportamento específico do grep GNU de qualquer forma (consulte a manpage).
O comando ":" é o comando que não faz nada (se não acredita, consulte "help :") e é usado, porque a construção while exige um corpo. Poderia ser substituído por "sleep 1", para não ficar consumindo processamento da CPU o tempo todo, mas como meu PC é um quad-core e esse script exige poucos recursos, não me importei com isso. Também poderia ser substituído por "mpc current -w", que faria o trabalho de esperar a música atual acabar, mas isso pode criar uma race condition não desejada.
Por último, temos o já conhecido comando "shutdown -h now", que hoje em dia poderia (algo desnecessário) ser substituído por "systemctl halt".
#!/usr/bin/env bash while mpc | grep -Fqs 'playing'; do : done shutdown -h now
Abrir e redirecionar portas TCP em firewall iptables
BusqueM3P! - Download de músicas pelo shell
Conversão em massa de arquivos .wav para .mp3
Pegar ip dinamico enviar para ftp
Nenhum comentário foi encontrado.
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
Como fazer a conversão binária e aplicar as restrições no Linux
Como quebrar a senha de um servidor Linux Debian
Como bloquear pendrive em uma rede Linux
Um autoinstall.yaml para Ubuntu com foco em quem vai fazer máquina virtual
Instalar GRUB sem archinstall no Arch Linux em UEFI Problemático
Formas seguras de instalar Debian Sid (13)
Malware encontrado em extensões do Firefox. (0)
Fiz uma pergunta no fórum mas não consigo localizar [RESOLVIDO] (21)









