Eu criei um comando bash para passar cada arquivo .mp3 em uma pasta para um media player de linha de comando, o omxplayer. Também define o volume do jogador e joga fora o feedback do jogador:
for i in *.mp3; do omxplayer --vol -2000 "$i" > /dev/null; done
O --vol -2000
define o volume.
Este comando funciona bem, então eu decidi criar um apelido para ele chamado omxall:
alias omxall="for i in *.mp3; do omxplayer --vol -2000 > /dev/null "$i"; done"
O comando atual é idêntico, mas não funciona da mesma forma. O primeiro reproduz corretamente todos os arquivos .mp3 eo segundo fica por alguns segundos e termina.
Observe: estou colocando meus aliases em ~/.bash_aliases
. Eu tenho outros aliases de trabalho no mesmo arquivo, então a localização deles não é um problema.
Agora, percebo que /dev/null/
dificultará a solução de problemas, suprimindo todas as outras informações úteis. Por isso, tentei sem isso:
for i in *.mp3; do omxplayer --vol -2000 "$i"; done
Isso faz o trabalho certo.
alias omxall="for i in *.mp3; do omxplayer --vol -2000 "$i"; done"
Isso traz a página de uso do jogador.
O que está acontecendo aqui? Estou errado em assumir que um alias deve se comportar exatamente da mesma maneira que um comando digitado no prompt de comando?