Мне немного неясно, что это пытается сделать (у меня нет большого опыта работы с ImageMagick), но с точки зрения Bash я могу сказать вам, что этот бит:
for file in *.tiff
do
base=${file%*.tif}
не имеет смысла: он пытается удалить конечный .tif
(один F) из имени файла, который заканчивается на .tiff
(два F). Вы, вероятно, имели в виду либо это:
for file in *.tiff
do
base="${file%.tiff}"
(который снимает финал .tiff
) или это:
for file in *.tif
do
base="${file%.tif}"
(который находит файлы, оканчивающиеся на .tif
); или, возможно, это:
for file in *.tiff *.tif
do
base="${file%.tiff}"
base="${base%.tif}"
(который обрабатывает оба случая).
Вы также, вероятно, хотите явно проверить, что "$base"
равно '*'
(что произойдет, например, если вы попытаетесь использовать *.tif
в каталоге, в котором нет файлов, соответствующих этому имени ).