/ / Imagemagick script bash não funciona - bash, imagemagick

Imagemagick script bash não está funcionando - bash, imagemagick

#!/bin/bash

dir="/posix/path/to/folder"
cd "$dir"

color1 = "#816c51"
color2 = "#5a4a3b"
color3 = "#1c110f"

for file in *.tiff
do
base=${file%*.tif}
convert -unsharp 5 "$base" "$base.ppm"
convert -opaque white -fill white -fuzz 10% "$base.ppm" "${base}_step1.tif"
convert -fuzz 5% -fill "$color1" -opaque "$color1" "${base}_step1.tif" "${base}_step2.tif"
convert -fuzz 1.5% -fill "$color1" -opaque "$color2" "${base}_step2.tif" "${base}_step3.tif"
convert -fuzz 12% -fill "black" -opaque "$color3" "${base}_step3.tif" "${base}_step4.tif"
convert "${base}_step4.tif" "${base}_final.tif"
done

Eu recebo um par de erros:

convert: unable to open image ... convert: missing an image filename test.sh: line 6: color1: command not found

Eu realmente aprecio alguma ajuda! Obrigado!

Respostas:

2 para resposta № 1

Eu estou um pouco incerto sobre o que isso está tentando fazer (eu não tenho muita experiência com o ImageMagick), mas do ponto de vista de Bash, eu posso te dizer que isso:

for file in *.tiff
do
base=${file%*.tif}

não faz sentido: tenta retirar uma final .tif (um F) de um nome de arquivo que termina em .tiff (dois F "s). Você supostamente quis dizer isso:

for file in *.tiff
do
base="${file%.tiff}"

(que tira a final .tiff) ou isto:

for file in *.tif
do
base="${file%.tif}"

(que encontra arquivos terminados em .tif); ou, talvez, isso:

for file in *.tiff *.tif
do
base="${file%.tiff}"
base="${base%.tif}"

(que lida com os dois casos).

Você também provavelmente deseja verificar explicitamente o caso "$base" é "*" (o que acontecerá, por exemplo, se você tentar usar *.tif em um diretório que não contém arquivos correspondentes a esse nome.


1 para resposta № 2

Eu não tenho certeza se posso ajudar totalmente porque a extensão do problema não é relevante, mas vejo que você tem ".tiff "(com dois f) e depois todo o resto é".tif "(com um f). Então, talvez seja por isso que não é possível encontrar os nomes dos arquivos.

Também se livrar dos espaços em color1 = "blah" (por exemplo, color1 = "blah") e essa linha funcionará.