On Thu, Oct 09, 2008 at 08:31:39PM +0400, Kharitonov A. Dmitry wrote: >> #!/bin/sh >> >> export DISPLAY=:0.1 >> >> for i in *.avi >> do >> mplayer "$i" -ao alsa:device=hw=1.0 >> done >> >> > > Ну, если уж совсем хочется избежать > неприятностей с двоеточием, русскими > буквами и прочей нечистью > #!/bin/sh > > export DISPLAY=:0.1 > > ls -1b *.avi | while read i; do > do > mplayer "$i" -ao alsa:device=hw=1.0 > done На самом деле первый вариант (for i in *.avi) как раз правильнее (pathname expansion выполняется уже после word splitting, поэтому пробелы и прочие странные символы в именах файлов не приводят к неприятным эффектам). А вот второй вариант сломается, если в имени файла будет, например, символ новой строки. Впрочем, если имя файла начинается с "-", оно при вызове mplayer будет интерпретировано как опция; для защиты от этого можно написать ./*.avi, либо использовать "--" для прекращения обработки опций в оставшейся части командной строки (что поддерживается многими, но не всеми программами, и требует указания имени файла после прочих опций, что тоже не всегда возможно - у некоторых программ позиция опций в командной строке имеет значение).