কথোপকথনে ডাবল উক্তি পাস করতে সমস্যা হচ্ছে


0

চ্যানেলগুলির যথাযথ নামকরণের জন্য একটি ইন্টারেক্টিভ মেনু তৈরি করতে 'ডায়লগ' কমান্ডটি ব্যবহার করে অডিও রেকর্ডিং স্বয়ংক্রিয় করার জন্য আমি একটি স্ক্রিপ্টে কাজ করছি। আমি একটি অ্যারেতে চ্যানেল নামের একটি তালিকা পেয়েছি। আমি ফর্মটি নিজেই ফাঁকা হতে চাই, তবে ডায়ালগটিতে ডান পরামিতিগুলি প্রেরণ করার মতো মনে হচ্ছে না।

যদি আমি উদ্ধৃতিগুলি থেকে রক্ষা পাই তবে ফর্মটি যেমনটি হওয়া উচিত ঠিক তেমনটি উপস্থিত হয় তবে উদ্ধৃতিগুলি ইনপুট অঞ্চলে উপস্থিত হয়, আমি যদি উদ্ধৃতিগুলি থেকে অব্যাহতি না রাখি তবে এটির গণ্ডগোল সৃষ্টি হয় এবং আমি যদি অন্য কোনও ফাইলের সাথে কমান্ড প্রতিধ্বনি করে সম্পাদন করি তবে , আমি যেমন চাই ঠিক তেমন কাজ করে। সেই পদ্ধতিতে ডায়ালগটি কীভাবে কার্যকর করা যায় তা নির্ধারণে আমার সহায়তা দরকার।

এই কোড:

#!/bin/bash
declare -a CHANNELS
CHANNELS=(meet george jetson his boy elroy daughter judy)

channameiter ()
{
        for i in ${!CHANNELS[@]};
        do
                echo  -e "${CHANNELS[$i]}:" $((i + 1)) 1 \'\' $((i + 1)) 25 30 30 \
        done
}

dialog --form "Channels" 30 60 16 `channameiter`

এবং এই কোডটি অন্য একটি ফাইলের কাছে প্রতিধ্বনিত হয়েছিল এবং তারপরে সম্পাদিত হয় যা সঠিকভাবে চলে।

dialog --form Channels 30 60 16 meet: 1 1 "" 1 25 30 30 george: 2 1 "" 2 25 30 30 jetson: 3 1 "" 3 25 30 30 his: 4 1 "" 4 25 30 30 boy: 5 1 "" 5 25 30 30 elroy: 6 1 "" 6 25 30 30 daughter: 7 1 "" 7 25 30 30 judy: 8 1 "" 8 25 30 30

কোন ধারনা?

উত্তর:


2

এটি করার একটি উপায় এখানে কমান্ড-লাইন আর্গুমেন্টের অ্যারেটি পুনরাবৃত্তভাবে তৈরি করা হয়েছে:

#!/bin/bash
args=(Channels 30 60 16)
i=0
for chan in meet george jetson his boy elroy daughter judy; do
   ((++i))
   args+=("$chan" $i 1 "" $i 25 30 30)
done
dialog --form "${args[@]}"

অবশ্যই এটি CHANNELSআপনার মূল হিসাবে একই অ্যারে এবং পুনরাবৃত্তি কৌশলটি ব্যবহার করতে পারত । (ব্যক্তিগতভাবে, আমি মনে করি আমি কমান্ড-লাইন বিকল্পগুলি থেকে স্ক্রিপ্টে চ্যানেলের নামগুলি নেব, এক্ষেত্রে আপনি কেবল লিখতে পারেন for chan; do))

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.