( locsemege | 2012. 10. 14., v – 12:36 )

Amikor a part üres string, ott exit 0 az, amit írni szerettél volna, nem pedig quit 0. Fölötte a ciklusban a 2>/dev/null értelmét nem látom, hiszen a vizsgálat szerintem nem fog semmit az stderr-re írni. A $error hivatkozást idézőjelbe tenném. Tudom, hogy az mktemp nem tesz a filenévbe szóközt, tehát a konkrét esetben semmi jelentősége, csak bántja a szemem, rossz szokás. Egyedül akkor nem szoktam idézőjelbe tenni a helyettesítést, ha az a szándékom, hogy adott esetben több paraméterre hulljon szét, amit helyettesítek, ilyen viszont ritkán fordul elő. Mondjuk parancssori kapcsolókat helyettesítesz egy változóval, akkor nyilván nem szabad idézőjelbe tenni, hiszen a helyettesítés után azt szeretnénk, hogy a szóközök mentén több paraméterre essen szét.

Azt a for ciklust nem értem, amit kérdezel. Ugye az rm -f törölne, s a kimenete adná azt a listát, amin a ciklus végigmegy. Ugyanakkor szerintem az rm -f nem fog semmit az stdout-ra írni, így nincs min végigmennie a ciklusnak. Szerintem ilyesmit szerettél volna:

for i in $(seq ${#ext_to_delete[@]}); do
  rm -f "$1".${ext_to_delete[i-1]}
done

Itt viszon épp nem kell az idézőjel, mert a shellt elzárod a globbing értelmezésétől. Az egyik sort szerintem így kellene írni ott:

rm -f "$1"[0-9][0-9].cdr

Igaz, nem próbáltam ki.

Az rm -f "$101.iso" gondolom, nem a 101-edik paraméterre akart vonatkozni, így lenne jobb:

rm -f "${1}01.iso"

Rekurzív könyvtár bejárásra alant írtam gondolatébresztőt. Nagyon egyszerű, szerintem nem szorul magyarázatra. Talán annyi, hogy a directory-t úgy vizsgálom, hogy megpróbálok egy cd paranccsal belemenni, ha sikerül, akkor visszahívom a függvényt rekurzívan majd cd ..-tal visszajövök az eredeti mélységre, ha nem, akkor pedig megnézem, regurális file-ról van-e szó, s ha igen, elvégzem a kívánt műveletet vele. Mert ugye a cd parancs exit kódja 0 - true -, ha sikerült, s nem 0 - false -, ha nem.

A for i in $(seq 0 ${#ext[@]}); do ciklusod túlcímez a tömbön! Ugye az n elemű tömb indexei 0-tól n-1-ig tartanak, s nem n-ig.

tr '[:lower:]' '[:upper:]' <<<locsemege
LOCSEMEGE