Portál AbcLinuxu, 3. února 2026 18:28
#!/bin/bash
# Tenhle skript umí zmenšit fotky, který mu člověk nacpe.
# Při tom umí pomocí exif informace určit, zda je obrázek
# na šířku nebo na výšku a podle toho změní velikost.
while [ "$#" -ne 0 ] # Dokud nebudou zpracovány všechny vložené fotografie
do # dělej:
if [ `exif -t PixelXDimension "$1" |grep Value|head -n 1 |sed s/\ \ Value:\ //` > `exif -t PixelYDimension "$1" |grep Value|head -n 1 |sed s/\ \ Value:\ //` ] # pokud je šířka obrázku větší než výška
then # tak
echo "Obrázek $1 je na šířku." # napiš, že zpracovávaný obrázek je na šířku
# convert $1 -resize 640x480 $1 # zmenši fotografii na 640x480 a ulož pod názvem originálu
else # jinak (pokud se šířka fotografie nerovná 1200px)
echo "Obrázek $1 je na výšku." # napiš, že zpracovávaný obrázek je na výšku
# convert $1 -resize 480x640 $1 # zmenši fotografii na 480x640 a ulož pod názvem originálu
fi;shift # konec podmínky. shift zajistí po upravení všech fotografií správný konec programu
done # ukončí cyklus while
Podmínka if nefunguje. Nevíte někdo, jak správně zapsat podmínku "je větší než"? Díky
$() než ``
Je to hezčí.
if [ "$prom1" -gt "$prom2" ] # jestliže $prom1 je > než $prom2viz.
man test .
test by měl být totožný s [ ] . Pokud se pletu, ať mě někdo opraví.
grep Value | head -n 1, to by mělo jít nahradit : grep -m 1 Value (alespoň u mne) a ten sed, to by možná šlo taky zjednodušit, ale už je pozdě ...
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.