Převod fromátu obrázků #
Napište skript, který v aktuálním pracovním adresáři převede všechny obrázky typu tif, tiff a jpg, jpeg na formát png. Pro převod obrázků použijte programu convert pouze s parametry stare jmného obrázku a nové jméno obrázku, např. convert obrazek.tif obrazek.png
Vstup: je definován aktuálním pracovním adresářem
Výstup: nově vytvořené soubory typy png v aktuálním pracovním adresáři
návratový kód 0, pokud proběhla konverze všech obrázků
návratový kód 1, pokud nešlo nějaký obrázek vytvořit
Motivace #
Cílem této úlohy je zkusit vytvořit bashový skript, který bude převádět zadané formáty obrázků na formát png. Nástroj convert automaticky nastaví formát obrázku na základě zadaného jména souboru.
Modifikace jména #
Pokud chcete změnit koncovku jména souboru například z tif na png, pak můžete využít operace oříznutí viz advance bash skipting guide.
Otestujte, co provede následující příkaz:
${soubor%tif}png
Chybové stavy #
Program musí skončit s návratovou hodnotou 1 a výpisem "Nelze vytvorit soubor $name" na stderr v případě, že skript nemůže vytvořit cílový soubor, ať už z důvodu, že soubor nelze vytvořit, nebo nelze číst zdrojový soubor.
Ukázkový příklad #
- Stáhněte si zakomprimované obsahy testovacích adresářů test1.tgz test2.tgz test3.tgz.
- Rozbalte si adresáře na vašem počítači příkazem
tar xzf test1.tgza adresář se Vám vytvoří v aktuálním adresáři. - Nakopírujte si svůj skript do adresáře a spusťte ho.
- Pro testování chyb nastavte pro některý zdrojový soubor chmod a-rw práva, nebo pro celý adresář chmod a-w práva.
- Po prvním spuštění můžete také nastavit práva chmod a-w pro jeden i více vytvořených souborů a spustit skript znovu.
Testování #
Struktura testů #
- Jednoduché testy, kdy je pouze jeden typ obrázku a jednoduchá jména
- Testy se složitějšími jmény obrázků obsahující mezeru a případně jiné nehezké znaky
- Testy, kdy soubor nelze vytvořit, protože už takový soubor existuje a vy nemáte práva ho smazat ani přepsat
- Testy, kdy nemáte práva číst ze souboru
- Testy, kdy nemáte práva vytvořit v adresáři žádný soubor
Odevzdání #
| Povinné zadání | |
|---|---|
| Název v BRUTE | 01-bash-basic |
| Odevzdávané soubory | convert_images.sh |
| Argumenty při spuštění | žádné |
| Návratová hodnota | 0 při úspěchu1 při chybě |
| Chybový výstup | "Nelze vytvorit soubor $name" → stderrpři chybě vytvoření souboru $name |