Sto provando a scrivere uno script che ritaglierà e ridimensionerà le foto di grandi dimensioni in sfondi HD.Nome file con spazi in BASH
#! /bin/bash
for i in `ls *.jpg`
do
width=`identify -format '%w' $i`
height=`identify -format '%h' $i`
if [ `echo "$width/$height > 16/9" | bc -l` ]
then
exec `convert $i -resize 1920 -gravity Center -crop '1920x1080+0+0' +repage temp`
else
exec `convert $i -resize x1080 -gravity Center -crop 1920x1080+0+0 +repage temp`
fi
rm $i
mv temp $i
done
Ma sembra che lo script abbia problemi con i nomi di file che hanno spazi (come Tumble Weed.jpg). Come posso risolvere questo?
La risposta è già stata fornita di seguito, ma vorrei solo aggiungere che lo scripting della shell è davvero negativo per gestire gli spazi nei nomi di file perché così tanti elenchi sono delimitati da spazi, in particolare argomenti di comando. Prova ad esempio a copiare un file con spazio tramite scp! È quasi impossibile senza la fuga manuale. – Timmmm
Dovresti leggere 'http: // mywiki.wooledge.org/BashPitfalls' nella sua interezza :-) migliorerà drasticamente le tue abilità di bash – Benoit