Portál AbcLinuxu, 10. května 2025 08:56
#!/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 whilePodmínka
if
nefunguje. Nevíte někdo, jak správně zapsat podmínku "je větší než"? Díky
$()
než ``
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.