একটি অ্যারে ঘোষণা করুন তবে এটি সংজ্ঞায়িত করবেন না?


14

সেখানে অনেকগুলি গাইড রয়েছে যা দেখায় যে কীভাবে অ্যারে ঘোষণা করা হয় এবং সংজ্ঞা দেওয়া যায়

foo[0]=abc 
foo[1]=def

আমি যেটি অর্জনের চেষ্টা করছি তা হ'ল একটি অ্যারে ঘোষণা করা তবে এটি সংজ্ঞায়িত করা হয়নি কারণ এটি অবিলম্বে সংজ্ঞায়িত করতে হবে না, বেশিরভাগ প্রোগ্রামিং ভাষায় এটি এরকম কিছু দেখাবে

int bar[100];

শেল স্ক্রিপ্টিং ভাষায় এটি কি সম্ভব?

উত্তর:


23

আপনি একটি ভেরিয়েবল একটি শূন্য অ্যারে তৈরি করে যেমন নির্দিষ্ট করতে পারেন:

var_name=()

var_name তারপরে রিপোর্ট হিসাবে একটি অ্যারে হবে

$ declare -p var_name
declare -a var_name='()'

উদাহরণ:

var_name=()
for i in {1..10}; do
    var_name[$i]="Field $i of the list"
done
declare -p var_name
echo "Field 5 is: ${var_name[5]}"

যা এরকম কিছু তৈরি করে:

declare -a var_name='([1]="Field 1 of the list" [2]="Field 2 of the list" [3]="Field 3 of the list" [4]="Field 4 of the list" [5]="Field 5 of the list" [6]="Field 6 of the list" [7]="Field 7 of the list" [8]="Field 8 of the list" [9]="Field 9 of the list" [10]="Field 10 of the list")'
Field 5 is: Field 5 of the list

minerz029, @am: .. এবং উপাদানগুলি কীভাবে সংজ্ঞায়িত করবেন? আমি চেষ্টা করেছি তবে কেবল একটি একক স্ট্রিং সংজ্ঞায়িত / অ্যাক্সেস করতে পারলাম .. অ্যারে ভেরিয়েবলের মানগুলি সংজ্ঞায়িত করতে এবং অ্যাক্সেস করার সামান্য উদাহরণ দুর্দান্ত হবে ...
যথাযথ

ভালভাবে বুঝতে পেরেছি .. আমি বন্ধনীগুলি অনুভব করছিলাম ..
যথাযথ

4

উপরের উপায় ছাড়াও, আমরা বিবৃতি ঘোষণার মাধ্যমে একটি অ্যারেও তৈরি করতে পারি।

ভেরিয়েবলকে অ্যারে হিসাবে ঘোষণার জন্য -a বিকল্প সহ ডিক্লেয়ার স্টেটমেন্ট ব্যবহার করা যেতে পারে, তবে এটি প্রয়োজনীয় নয়। সমস্ত পরিবর্তনশীল সুস্পষ্ট সংজ্ঞা ছাড়াই অ্যারে হিসাবে ব্যবহার করা যেতে পারে। প্রকৃতপক্ষে, এটি প্রদর্শিত হয় যে এক অর্থে, সমস্ত ভেরিয়েবল অ্যারে হয়, এবং সাবস্ক্রিপ্ট ব্যতীত সেই অ্যাসাইনমেন্টটি "[0]" হিসাবে নির্ধারিত হিসাবে একই। একটি অ্যারের স্পষ্ট ঘোষণা ঘোষণার অন্তর্নির্মিত ব্যবহার করে করা হয়:

declare -a ARRAYNAME

সহযোগী অ্যারে ব্যবহার করে তৈরি করা হয়

declare -A name.

ঘোষণা এবং পঠনযোগ্য বিল্টইনগুলি ব্যবহার করে একটি অ্যারে ভেরিয়েবলের জন্য বৈশিষ্ট্য নির্দিষ্ট করা যেতে পারে। প্রতিটি বৈশিষ্ট্য একটি অ্যারের সমস্ত সদস্যের জন্য প্রযোজ্য।

আপনি কোনও অ্যারে ভেরিয়েবল সেট করার পরে, আপনি নীচে এটি অ্যাক্সেস করুন:

${array_name[index]}

1

এটি প্রকৃতপক্ষে সি তে একই, আপনার পছন্দ অনুসারে আমরা অ্যারে নিতে পারি can এখানে, আমরা একটি খালি অ্যারে নিতে পারি এবং তারপরে কোনও মান রাখতে পারি।

bar=()

লুপের পক্ষে সেই অ্যারেতে মূল্য নিতে এবং মুদ্রণের জন্য এটি সহজ:

bar=()
for ((i=0;i<10;i++));
do
    read bar[$i]  #Take Value in bar array
    echo bar[$i]
done

আশা করি এটা সাহায্য করবে.


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