Převod formá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 staré jméno 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 |