मैं जिस कमांडलाइन कमांड को चलाना चाहता हूं वह एक mkvmerge कमांड है:
mkvmerge arguments: [-o] [output_filename] [-a] [tracknumer] [-S] [source_filename]
तो मैं एक चर है commandऔर यह या तो के मूल्यों पर ले जाता -a 1, -a 1 -Sया -Sकुछ शर्तों के आधार पर पूरा किया जा रहा है, इसलिए मैं आदेश को चलाने के लिए मेरी पार्टी लिपि में इस अगर बयान है
if [[ ! -z $command ]]; then
mkvmerge -o "${file}"$command "$sourcefile"
fi
स्पेस के बिना मेरे पास $commandसही कारण ${file}है क्योंकि $commandइसमें एक प्रमुख व्हाट्सएप है। समस्या यह है कि जब मैं स्क्रिप्ट चला रहा हूं, तो यह फ़ाइल नाम का हिस्सा होने के लिए $ आदेश मान रहा है और अतिरिक्त पैरामीटर के रूप में नहीं है जो फ़ाइल नाम के बाद का पालन करने के लिए हैं।
यह इंगित करता है कि चर में अग्रणी स्थान नहीं है। इसके साथ मुद्रण का प्रयास करें
—
गॉर्डन डेविसन
printf '"%s"\n "$command"।
"${file}" $command...