/ / इमेजमैजिक बैश स्क्रिप्ट काम नहीं कर रही है - बैश, इमेजमैगिक

Imagemagick bash स्क्रिप्ट काम नहीं कर रहा है - 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

मुझे कुछ त्रुटि मिली:

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

मैं वास्तव में कुछ मदद की सराहना करता हूँ! धन्यवाद!

उत्तर:

जवाब के लिए 2 № 1

मैं थोड़ा अस्पष्ट हूं कि यह क्या करने की कोशिश कर रहा है (I डॉन "टी के पास ImageMagick के साथ बहुत अनुभव है), लेकिन बैश के दृष्टिकोण से, मैं आपको बता सकता हूं कि यह बिट:

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

इसका कोई मतलब नहीं है: यह एक फाइनल छीनने की कोशिश करता है .tif (एक एफ) फ़ाइल-नाम से समाप्त होता है .tiff (दो एफ "एस)। आप शायद या तो इसका मतलब है:

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 एक निर्देशिका में "t" में उस नाम से मेल खाती कोई भी फाइल नहीं है)।


उत्तर № 2 के लिए 1

मुझे "पूरी तरह से यकीन नहीं है कि मैं पूरी तरह से मदद कर सकता हूं क्योंकि समस्या की पूर्ण सीमा" प्रासंगिक नहीं है, लेकिन मैं आपको देखता हूं ".tiff "(दो f के साथ) और फिर बाद में बाकी सब कुछ".tif "(एक एफ के साथ)। तो शायद यही कारण है कि यह" फ़ाइल नाम नहीं ढूंढ सकता है।

Color1 = "blah" (जैसे color1 = "blah") में रिक्त स्थान से छुटकारा पाएं और यह पंक्ति काम करेगी।