Úgy látszik fáradt vagyok már.
Hol változtassak, hogy ne tegye fel minden egyes új fájlnál a kérdést?
for files in *.flv; do
echo "ffmpeg vagy mencoder? (1/2) "
read answer
if [ "${answer}" = "1" ]; then
ffmpeg -i ${files} ${files%flv}avi
else
mencoder -forceidx ${files} -ovc xvid -xvidencopts bitrate=350:trellis:hq_ac:chroma_opt:quant_type=mpeg -oac mp3lame -o ${files%flv}avi
fi
done
Valahogy úgy szeretném hogy minden flv fájlt alakítson át a megadott programmal, kérdés nélkül.
A script elején ami nincs beillesztve, van még kérdés a gép kikapcsolására, az eredeti fájlok megtartására is. Tehát azokat is figyelembe kell vennem, ha máshogy állnék neki. Teszem azt find-del keresem az flv fájlokat. de akkor hogy lesz átnevezve?
ááááh késő van.
- 2714 megtekintés
Hozzászólások
Hát... talán ne a ciklusmagban kérdezz minden egyes iterációban, a files minden egyes értékénél, hanem még a ciklus előtt. Az echo és a read legyen a for előtt. Különben a read-nek van -p kapcsolója is, akkor még az echo sem kell, valamint van olyan is bash-ben, hogy select. :)
tr '[:lower:]' '[:upper:]' <<<locsemege
LOCSEMEGE
- A hozzászóláshoz be kell jelentkezni
Milyen igaz. Mi ebből a tanulság? Éjjel ne írjunk scriptet. :-)
A selectet viszont nem ismerem ebben a formában, csak mint menü létrehozására láttam példát..
- A hozzászóláshoz be kell jelentkezni
Amit még mondani szeretnék, hogy az ffmpeg-hez erősen ajánlom a -nostdin kapcsolót, továbbá a filenév helyettesítéseket rakd idézőjelbe, mert ha szóköz van valamelyik filenévben, elhasal a scripted.
Tipp:
read -r -N 1 -p 'ffmpeg[1] vagy mencoder[2]? ' answer
for ...; do
if [ x"$answer" = x'2' ]; then
mencoder ...
else
ffmpeg ...
fi
done
De csinálhatod úgy is, hogy még a ciklus előtt összerakod az ffmpeg-es vagy mencoder-es sort, aztán a ciklusban csak helyettesíted, így a ciklusmagban nem lesz if. Persze ekkor észnél kell lenni az idézőjelekkel, backslash-ekkel, esetleges eval-lal.
tr '[:lower:]' '[:upper:]' <<<locsemege
LOCSEMEGE
- A hozzászóláshoz be kell jelentkezni
A szóközökre egy IFS=``
-t tettem bele.
- A hozzászóláshoz be kell jelentkezni