Chodzi prawdopodobnie o to, że nazwy parametrów zawierają otoczone spacjami myślniki, a jak wiadomo, myślnik może być potraktowany przez lame jako standardowe wejście. Stąd, być może, taki komunikat.
Mały eksperyment:
tmp $ touch -l
touch: invalid option -- 'l'
Spróbuj `touch --help' dla uzyskania informacji.
tmp $ touch -- -l
tmp $ ls -l
-rw-r--r-- 1 arctgx arctgx 0 06-26 18:55 -l
drwx------ 2 root root 16384 2008-12-01 lost+found
... itd.
tmp $ ls "-l"
... pokazuje to samo
tmp $ ls -- "-l"
-l
tmp $ ls -l -- "-l"
-rw-r--r-- 1 arctgx arctgx 0 06-26 18:55 -l
tmp $ ls -l -- -l
-rw-r--r-- 1 arctgx arctgx 0 06-26 18:55 -l
Zgodnie z nim, można by przenieść niektóre kawałki polecenia konwertującego poza podwójną kreskę oznaczającą koniec opcji polecenia. O ile nie jest to problemem dla pliku wejściowego i wyjściowego, o tyle nadanie albumu czy tytułu pozostaje nadal problemem.
"lame -h -V2 -ms --ta \\"$artist\\" --tt \\"$title\\" -- \\"$file_in\\" \\"$file_out\\""
Nie potrafię jeszcze solidnie wytłumaczyć, dlaczego bezpośrednio w warunku
case działa mi to:
eval "lame -h -V2 -ms --ta \\"$artist\\" --tt \\"$title\\" -- \\"$file_in\\" \\"$file_out\\""
czyli wersja z
eval.
Polecam slajd
http://www.uniforum.chi.il.us/slides/bash1.pdfed. Łee tam, namieszałem znowu, bo co ma wspólnego traktowanie kreski jako parametru pozycyjnego z traktowaniem jako standardowego wyjścia?
![Wink ;)](http://forum.linux.pl/Smileys/default/wink.gif)