O apelido de Bash não funciona, o comando idêntico

0

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?

Foi causado por um erro tolo da minha parte, mas estou deixando esta questão aqui porque outra pessoa pode fazer a mesma coisa.

    
por Jǝssǝ 08.01.2018 / 13:22

0 respostas