Seu comando está sendo expandido para isso:
export VIDEOS=mp4 VIDEOS=wmv VIDEOS=avi VIDEOS=flv VIDEOS=mkv VIDEOS=m4u VIDEOS=mpg VIDEOS=mpeg
Execute isso para ver o que está acontecendo:
echo export VIDEOS={mp4,wmv,avi,flv,mkv,m4u,mpg,mpeg}
(chama-se expansão de chaves )
O segundo problema é que bash
faz a expansão antes da expansão do parâmetro, não depois dele, então qualquer coisa que pareça com sua solução será confusa.
Você teria que fazer algo assim:
eval echo \*.$VIDEOS
que vai ficar irritante ao digitar todas as vezes.
Que tal algo como isto:
videos() {
find . -mindepth 1 -maxdepth 1 -type f \
\( -name "*.mp4" -o -name "*.wmv" -o -name "*.avi" -o \
-name "*.flv" -o -name "*.mkv" -o -name "*.m4u" -o \
-name "*.mpg" -o -name "*.mpeg" \)
}
Então, em vez de fazer:
ls *.$VIDEOS
faça o seguinte:
videos
ou se você precisar passá-lo para um comando:
ls $(videos)
Esta parte está funcionando:
echo *.{mp4,wmv,avi,flv,mkv,m4u,mpg,mpeg}
pode ser a pista para .bash_profile
não funcionar. Por exemplo, isso pode significar que você está usando zsh
.
Por favor, diga-nos o que isso faz:
echo $0
para que possamos descobrir em qual arquivo você deve colocá-lo.