একটি নন-ফাইল কম্যান্ডলাইন প্যারামিটারের অংশ হিসাবে ব্যবহার করতে একটি স্ট্রিংয়ের মধ্যে একটি পরিবর্তনশীল পাস করব?


1

কমান্ডলাইন কমান্ডটি আমি চালাতে চাই একটি mkvmerge কমান্ড:

mkvmerge arguments: [-o] [output_filename] [-a] [tracknumer] [-S] [source_filename]

সুতরাং আমি একটি পরিবর্তনশীল আছে command এবং এটি উভয় মান লাগে -a 1, -a 1 -S, অথবা -S কিছু শর্ত পূরণের উপর নির্ভর করে, তাই আমি যদি আমার bash স্ক্রিপ্টে কমান্ডটি চালানোর জন্য বিবৃতি রাখি

if [[ ! -z $command ]]; then
    mkvmerge -o "${file}"$command "$sourcefile"
fi

কারণ আমি আছে $command ডান পাশে ${file} একটি স্থান ছাড়া কারণ $command একটি একক নেতৃস্থানীয় হোয়াইটস্পেস রয়েছে। আমার সমস্যা যে আমি স্ক্রিপ্টটি চালাচ্ছি, এটি $ কমান্ডটি ফাইলের নামের অংশ হতে পারে এবং ফাইলের নামের পরে অনুসরণ করার জন্য অতিরিক্ত পরামিতি হিসাবে নয়।


1
দুটি স্পেস এছাড়াও একটি বৈধ বিভাজক, তাই আপনি চেষ্টা করতে পারেন "${file}" $command...
xenoid

যে আসলে কাজ। টিপের জন্য ধন্যবাদ!
OnAnOpenField

1
যে সেখানে নির্দেশ করে নয় পরিবর্তনশীল একটি নেতৃস্থানীয় স্থান। এটি দিয়ে প্রিন্ট করার চেষ্টা করুন printf '"%s"\n "$command"
Gordon Davisson
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.