Есть такой мегаскрипт:
https://encode2mpeg.sourceforge.net/encode2mpeg.html
Я его хочу немножко преобразовать, чтобы вместо pcm2aiff (который немножко поломан) использовать sox. Но sox оказался хитее чем кажется, и параметры raw файлов ему нужно задавать перед каждым входным файлом. которых может быт переменное число. Решил сделать крутой цикл:
FULLSOXLINE=''
SOXPRAMS=' -L -b 16 -e signed -c 1 -r 441000 -t raw '
for ((n=0;n<${mpegchannels:-2};n++)) ; do
${FULLSOXLINE}+=${SOXPARAMS}+"$output"_${CHANLIST[n]}.pcm
done
sox -m ${FULLSOXLINE} -c$((${mpegchannels:-2})) -b 16 -r"$asr" -e signed "$output".aiff
но естественно оно не работает как я задумал:
./encode2mpeg: line 7438: +=+/dev/shm/svcd_test.sio_l.pcm: No such file or directory
./encode2mpeg: line 7438: +=+/dev/shm/svcd_test.sio_r.pcm: No such file or directory
./encode2mpeg: line 7438: +=+/dev/shm/svcd_test.sio_ls.pcm: No such file or directory
./encode2mpeg: line 7438: +=+/dev/shm/svcd_test.sio_rs.pcm: No such file or directory
./encode2mpeg: line 7438: +=+/dev/shm/svcd_test.sio_c.pcm: No such file or directory
./encode2mpeg: line 7438: +=+/dev/shm/svcd_test.sio_lfe.pcm: No such file or directory
sox: SoX v14.4.2
sox FAIL sox: Not enough input filenames specified
и вот .. я в ту-пи-ке.