আমি বাশ স্ক্রিপ্টিং শিখছি এবং এটি আমার / usr / শেয়ার / বাশ-সমাপ্তি, লাইন 305 এ পেয়েছি:
local cword words=()
এটার কাজ কি? অনলাইন সমস্ত টিউটোরিয়াল কেবল বিন্যাসে রয়েছে
local var=value
আমি বাশ স্ক্রিপ্টিং শিখছি এবং এটি আমার / usr / শেয়ার / বাশ-সমাপ্তি, লাইন 305 এ পেয়েছি:
local cword words=()
এটার কাজ কি? অনলাইন সমস্ত টিউটোরিয়াল কেবল বিন্যাসে রয়েছে
local var=value
উত্তর:
যদিও আমি জর্ডানমের দেওয়া উত্তর পছন্দ করি বলে আমি মনে করি কম অভিজ্ঞ Linuxব্যবহারকারীদের কীভাবে নিজেরাই এই জাতীয় প্রশ্নগুলি মোকাবেলা করতে হবে তা দেখানো সমান গুরুত্বপূর্ণ ।
গুগল অনুসন্ধান ফলাফল পৃষ্ঠায় প্রদর্শিত এলোমেলো পৃষ্ঠাগুলিতে উত্তর খোঁজার চেয়ে প্রস্তাবিত উপায়টি দ্রুত এবং আরও বহুমুখী।
প্রথমত, সমস্ত কমান্ড যা Bashএগুলির একটি সুস্পষ্ট পথ টাইপ না করে চালানো ./commandযেতে পারে যেমন দুটি বিভাগে বিভক্ত করা যেতে পারে: Bash shell builtinsএবং external commands। Bash shell builtinsএর সাথে ইনস্টল হয়ে আসুন Bashএবং অংশ external commandsনা থাকায় এটির অংশ Bash। এটি গুরুত্বপূর্ণ কারণ Bash shell builtinsভিতরে নথিবদ্ধ করা হয় man bashএবং তাদের ডকুমেন্টেশনগুলি helpকমান্ডের সাথেও ডেকে আনা যেতে পারে যখন external commandsসাধারণত তাদের নিজস্ব নথিভুক্ত থাকে manpagesবা -h, --helpপতাকাটির কোনও রাজা নিতে পারে । কমান্ডটি একটি Bash shell builtinবা একটি কিনা তা পরীক্ষা করতে external command:
$ type local
local is a shell builtin
এটি প্রদর্শিত হবে how command would be interpreted if used as a command name(থেকে help type)। এখানে আমরা দেখতে পারি যে localএকটি shell builtin। আসুন আরেকটি উদাহরণ দেখুন:
$ type vim
vim is /usr/bin/vim
এখানে আমরা দেখতে পাচ্ছি যে vimএটি একটি shell builtinনয় তবে এর মধ্যে অবস্থিত একটি বাহ্যিক কমান্ড /usr/bin/vim। তবে, কখনও কখনও একই কমান্ড একটি উভয় ইনস্টল করা হতে পারে external commandএবং একটি হতে shell builtinএকই সময়ে। যোগ -aকরার জন্য typeসব সম্ভাবনা তালিকা, উদাহরণস্বরূপ:
$ type -a echo
echo is a shell builtin
echo is /usr/bin/echo
echo is /bin/echo
এখানে আমরা দেখতে পাচ্ছি যে echoএটি উভয়ই shell builtinএবং একটি external command। তবে, আপনি যদি কেবল টাইপ করে echoচাপেন তবে Returnএকটি কল করা shell builtinহবে কারণ এটি এই তালিকায় প্রথম প্রদর্শিত হয়। মনে রাখবেন যে এই সমস্ত সংস্করণগুলির echoএকই হওয়ার দরকার নেই। উদাহরণস্বরূপ, আমার সিস্টেমে পতাকা /usr/bin/echoলাগে --helpযখন builtinনা হয়।
ঠিক আছে, এখন যখন আমরা জানি যে localএটি একটি শেল অন্তর্নির্মিত এটি আসুন এটি কীভাবে কাজ করে তা খুঁজে বার করুন:
$ help local
local: local [option] name[=value] ...
Define local variables.
Create a local variable called NAME, and give it VALUE. OPTION can
be any option accepted by `declare'.
Local variables can only be used within a function; they are visible
only to the function where they are defined and its children.
Exit Status:
Returns success unless an invalid option is supplied, an error occurs,
or the shell is not executing a function.
উল্লেখ্য প্রথম লাইন: name[=value]। [এবং এর মধ্যে সমস্ত ]কিছুই .চ্ছিক । এটি একটি প্রচলিত কনভেনশন যা বিশ্বের অনেক manpagesএবং ডকুমেন্টেশনের আকারে ব্যবহৃত হয় *nix। বলা হচ্ছে, আপনার প্রশ্নে যে আদেশটি আপনি জিজ্ঞাসা করেছেন তা পুরোপুরি আইনী। পরিবর্তে, ...চরিত্রের অর্থ পূর্ববর্তী যুক্তি পুনরাবৃত্তি করা যেতে পারে। আপনি এই সংস্করণটির কয়েকটি সংস্করণেও পড়তে পারেন man man:
The following conventions apply to the SYNOPSIS section and can be used
as a guide in other sections.
bold text type exactly as shown.
italic text replace with appropriate argument.
[-abc] any or all arguments within [ ] are optional.
-a|-b options delimited by | cannot be used together.
argument ... argument is repeatable.
[expression] ... entire expression within [ ] is repeatable.
সুতরাং, দিনের শেষে, আমি আশা করি যে এখন আপনার পক্ষে Linuxকাজ করার বিভিন্ন কমান্ড কীভাবে বোঝার একটি সহজ সময় হবে ।
local?
man bash। সেখানে একবার, /Arrays$অ্যারে বিভাগে লাফিয়ে টাইপ করুন। ( $পরবর্তী Arraysঅনুচ্ছেদে হ'ল বিভাগে ইন-পাঠ্য রেফারেন্সের মাধ্যমে সাইকেল চালানো প্রতিরোধ করা)) সেখান থেকে আপনি fকোনও পৃষ্ঠা এগিয়ে bযেতে বা পিছনে যেতে টাইপ করতে পারেন । qআপনার কাজ শেষ হয়ে গেলে ম্যান পৃষ্ঠা থেকে প্রস্থান করতে টাইপ করুন।
helpকোনও আরগস ছাড়াই চলমান সমস্ত ব্যাশ বিল্টিনগুলি তালিকাভুক্ত করে যদি আপনি আরও দেখার আগ্রহী হন।
localকেবলমাত্র বর্তমানে সংজ্ঞায়িত ফাংশনে স্কোপ থাকার জন্য কেবল একটি ভেরিয়েবল ঘোষণা করে, যাতে প্রধান নির্বাহী পরিবেশটি মানটি "দেখতে" না পারে। আপনি localকোনও ফাংশনের বাইরে ব্যবহার করতে পারবেন না । উদাহরণ
func() {
nonlocal="Non local variable"
local onlyhere="Local variable"
}
func
echo $nonlocal
echo $onlyhere
আউটপুট: নন লোকাল ভেরিয়েবল
সুতরাং $onlyhereফাংশনের সুযোগ বাইরে দৃশ্যমান ছিল না।
var=(), তবে আমি মনে করি যে আপনি কী সন্ধান করছেন তার নাম না জেনেও কিছুটা বের করা যায় । ;)