abc=ok
ভেরিয়েবলের জন্য একটি মান নির্ধারণ করে abc
। declare abc
বলা হয় একটি ভেরিয়েবল ঘোষণা abc
। দুটি হিসাবে একত্রিত করা যেতে পারে declare abc=ok
।
ব্যাশ, অন্যান্য শাঁস মত, স্ট্রিং এবং অ্যারে ভেরিয়েবল ঘোষণা করা প্রয়োজন না, তাই declare
যদি না আপনি অপশন পাস, যেমন চান প্রয়োজন হয় না declare -A abc
করতে abc
একটি মিশুক অ্যারে বা declare -r
একটি পরিবর্তনশীল কেবলমাত্র-পাঠ্য করা। যাইহোক, একটি ফাংশনের অভ্যন্তরে, declare
একটি পার্থক্য করে: এটি ফাংশনের পরিবর্তে ভেরিয়েবলকে স্থানীয় করে তোলে যার অর্থ ফাংশনের বাইরে ভেরিয়েবলের মান (যদি থাকে) সংরক্ষণ করা হয়। (আপনি যদি না ব্যবহার করেন declare -g
যা ভেরিয়েবলটিকে স্থানীয় নয়; এটি অন্যান্য বিকল্পের সাথে মিলিত হলে কার্যকর হয়, উদাহরণস্বরূপ declare -gA
কোনও ফাংশনে একটি গ্লোবাল এসোসিয়েটিভ অ্যারে তৈরি করতে)) উদাহরণ:
f () {
declare a
a='a in f'
b='b in f'
echo "From f: a is $a"
echo "From f: b is $b"
}
a='Initial a'
b='Initial b'
f
echo "After f: a is $a"
echo "After f: b is $b"
আউটপুট:
From f: a is a in f
From f: b is b in f
After f: a is Initial a
After f: b is b in f
declare
বিল্টিনের সাথে আপনি আরও একটি জিনিস করতে পারেন
declare
Builtin ব্যাশ জন্য অনন্য হয়। এটি দৃ strongly়ভাবে অনুপ্রাণিত এবং ksh এর typeset
বিল্টিনের খুব কাছাকাছি , এবং বাশ সামঞ্জস্যের typeset
প্রতিশব্দ হিসাবে সরবরাহ করে declare
। (বাশ কেন কেবল এটি কল করেনি তা আমি জানি না typeset
)। তৃতীয় প্রতিশব্দ আছে local
,। এর রয়েছে export
, যা হিসাবে একই declare -x
, আবার সামঞ্জস্যের জন্য (প্রতি বোর্ন ধাঁচের শেল সহ)।
declare
সাথে NAME কে স্থানীয় করে তোলেlocal
।-g
বিকল্প এই আচরণ শুষে নেবে। দেখুনhelp declare
।