Для изображений JPEG и поворотов под прямым углом используйте jpegtran
или exiftran
, так как они могут поворачивать изображения без потерь.
for f in *.jpg ; do
jpegtran -rotate 180 "$f" > "${f%.jpg}-rotated.jpg"
done
Или для поворота на месте:
for f in *.jpg ; do
jpegtran -rotate 180 -outfile "$f" "$f"
done
exiftran
также имеет флаг -a
для автоматического поворота изображения на основе того, что указано в теге ориентации EXIF.
${var:-x}
означает «если переменная не установлена или пуста, замените ее на x». Таким образом, это зависит от того, что вы подразумеваете под «созданием цикла».
Если вы создаете цикл путем разделения на $IFS
, то да, вы можете использовать это для создания переменной для цикла. Однако, если это то, что вы хотите сделать, я бы рекомендовал вместо этого использовать массив ksh:
if [ "$#" -eq 0 ]; then
set -A sta blabla blabla2 blabla3 # ksh88/pdksh/mksh/ksh93
sta=(blabla blabla2 blabla3) # ksh93/mksh
else
sta=("$@") # use the positional parameters if provided
fi
for x in "${sta[@]}"; do [...]