লিনাক্স কমান্ড - ইউনিক্স কমান্ড

NAME এর

bash - GNU Bourne- আবার SHell

সংক্ষিপ্তসার

bash [options] [ফাইল]

বর্ণনা

Bash হল একটি sh -compatible কমান্ড ল্যাঙ্গুয়েজ ইন্টারপ্রেটার যা মানক ইনপুট বা ফাইল থেকে পাঠানো কমান্ডগুলি চালায়। Bash এছাড়াও Korn এবং সি শেল ( ksh এবং csh ) থেকে দরকারী বৈশিষ্ট্য অন্তর্ভুক্ত।

ব্যাশটি IEEE POSIX শেল এবং টুল স্পেসিফিকেশন (IEEE ওয়ার্কিং গ্রুপ 1003.2) এর একটি কনফরম্যান্ট বাস্তবায়ন করার উদ্দেশ্যে তৈরি।

পছন্দসমূহ

সেট বিল্টিন কমান্ডের বিবরণে নথিভুক্ত একক-অক্ষরের শেল বিকল্পগুলি ছাড়াও, bash দ্বারা নিম্নলিখিত বিকল্পগুলি ব্যাখ্যা করা হয়:

-সি স্ট্রিং

-c বিকল্প উপস্থিত থাকলে, কমান্ডগুলি স্ট্রিং থেকে পড়বে। যদি স্ট্রিং পরে আর্গুমেন্ট থাকে, তবে তারা $ 0 এর সাথে শুরু হওয়া অবস্থানগত প্যারামিটারগুলিকে নিযুক্ত করা হয়।

-i

-i বিকল্প উপস্থিত থাকলে, শেল ইন্টারেক্টিভ হয়

-l

একটি লগইন শেল হিসাবে এটি হিসাবে আহ্বান করা হয়েছে হিসাবে bash কাজ করুন (নীচের INVOCATION দেখুন)।

-r

যদি -r বিকল্প উপস্থিত থাকে, শেলটি সীমাবদ্ধ হয়ে যায় (নিচে দেওয়া নিষ্ক্রিয় শেল দেখুন)।

-s

যদি -s বিকল্প উপস্থিত থাকে, বা বিকল্প প্রক্রিয়াকরণের পরে কোনও আর্গুমেন্ট অবশিষ্ট থাকে না, তাহলে স্ট্যান্ডার্ড ইনপুট থেকে কমান্ডগুলি পড়া হয়। এই বিকল্পটি একটি ইন্টারেক্টিভ শেল আহরণ করার সময় স্থির প্যারামিটারগুলিকে সেট করার অনুমতি দেয়।

-D

$ পূর্ববর্তী সমস্ত ডাবল উদ্ধৃত স্ট্রিংগুলির একটি তালিকা প্রমিত ouput এ মুদ্রিত হয়। এইগুলি হল স্ট্রিং যা ভাষা অনুবাদ সাপেক্ষ হয় যখন বর্তমান লোকেল C বা POSIX হয় না। এই- n বিকল্পটি বোঝায়; কোন কমান্ড চালানো হবে।

[- +] হে [ shopt_option ]

shopt_option shopt builtin দ্বারা গৃহীত শেল বিকল্পগুলির মধ্যে একটি (নীচের SHELL BUILTIN COMMANDS দেখুন)। যদি shopt_option উপস্থিত হয়, -O যে বিকল্প মান সেট; + অ unsets এটি। যদি shopt_option সরবরাহ না করা হয়, shopt দ্বারা গৃহীত শেল বিকল্পগুলির নাম এবং মানগুলি স্ট্যান্ডার্ড আউটপুটে মুদ্রিত হয়। যদি অবাঞ্ছিত বিকল্প হল + O , আউটপুট একটি বিন্যাসে প্রদর্শিত হয় যা ইনপুট হিসাবে পুনরায় ব্যবহার করা যেতে পারে।

-

একটি - বিকল্প শেষ সংকেত এবং আরও বিকল্প প্রক্রিয়াকরণ অক্ষম। পরে কোন আর্গুমেন্ট - ফাইলের নাম এবং আর্গুমেন্ট হিসাবে গণ্য করা হয়। একটি যুক্তি - সমতুল্য -

বাশে বহুবিধ চরিত্রের বিকল্পগুলিও ব্যাখ্যা করেছেন। একক চরিত্রের বিকল্পগুলি স্বীকৃত হওয়ার আগে এই বিকল্পগুলি কমান্ড লাইনে উপস্থিত হওয়া আবশ্যক।

--dump-পো-স্ট্রিং

ডি-তে সমতুল্য, কিন্তু আউটপুটটি GNU gettext po (পোর্টেবল অবজেক্ট) ফাইল বিন্যাসে রয়েছে।

--dump-স্ট্রিং

ডি-তে সমান

--help

স্ট্যান্ডার্ড আউটপুটে একটি ব্যবহার বার্তা প্রদর্শন করুন এবং সফলভাবে প্রস্থান করুন

--init-file ফাইল

--rcfile ফাইল

শেলটি ইন্টারেক্টিভ (নীচের INVOCATION দেখুন) যদি স্ট্যান্ডার্ড ব্যক্তিগত প্রারম্ভিকীকরণ ফাইল ~ / .bashrc এর পরিবর্তে ফাইল থেকে কমান্ডগুলি চালান

--login

-ল সমান

--noediting

শেল ইন্টারেক্টিভ হয় যখন কমান্ড লাইন পড়তে GNU পাঠ্যবই লাইব্রেরি ব্যবহার করবেন না।

--noprofile

সিস্টেম-ভিত্তিক প্রারম্ভিক ফাইল / etc / প্রোফাইল অথবা কোনও ব্যক্তিগত প্রারম্ভিক ফাইলগুলি ~ / .bash_profile , ~ / .bash_login , অথবা ~ / .profile- এ পড়তে নাও । ডিফল্টভাবে, যখন এই লগইন শেল রূপে আহ্বান করা হয়, তখন এই ফাইলগুলিকে বশে পড়ছে (নীচের INVOCATION দেখুন)।

--norc

শেল ইন্টারেক্টিভ হলে ব্যক্তিগত প্রারম্ভিক ফাইল ~ / .bashrc পড়তে এবং চালনা করবেন না। এই বিকল্পটি ডিফল্টরূপে চালু থাকে যদি শেলটি sh হিসাবে চালু হয়।

--posix

Bash এর আচরণ পরিবর্তন করুন যেখানে ডিফল্ট অপারেশন POSIX 1003.2 মান থেকে পৃথক মান ( প্যাসিফিক মোড ) সাথে মেলে।

--restricted

শেলটি সীমাবদ্ধ হয়ে যায় (নীচে সীমাবদ্ধ SHELL দেখুন)।

--rpm-প্রয়োজন

শেল স্ক্রিপ্ট চালানোর জন্য প্রয়োজনীয় ফাইলগুলির তালিকা তৈরি করুন। এটি '-n' বোঝায় এবং সময় সংশোধন চেকিং সংকলন হিসাবে একই সীমাবদ্ধতা সাপেক্ষে; ব্যাক্টিক্স, [] পরীক্ষা, এবং evals পার্সড হয় না তাই কিছু নির্ভরযোগ্যতা মিস করা হতে পারে। --ব্যাবস-এর সমতুল্য

--version

স্ট্যান্ডার্ড আউটপুটে bash এর এই উদাহরণের জন্য সংস্করণ তথ্য দেখান এবং সফলভাবে প্রস্থান করুন

ARGUMENTS

অপশন প্রক্রিয়াকরণের পরে যদি আর্গুমেন্টগুলি থাকে, এবং -c বা -s বিকল্প সরবরাহ না করা হলে প্রথম যুক্তিটি শেল কমান্ড ধারণকারী একটি ফাইলের নাম বলে মনে করা হয়। যদি এই পদ্ধতিতে bash প্রয়োগ করা হয়, $ 0 ফাইলের নাম সেট করা হয়, এবং অবস্থানগত পরামিতি অবশিষ্ট আর্গুমেন্টগুলিতে সেট করা হয় বাশ এই ফাইল থেকে কমান্ডগুলি চালায় এবং সঞ্চালন করে, তারপর প্রস্থান করে। Bash 'গুলি প্রস্থান স্ট্যাটাসটি স্ক্রিপ্টে সম্পাদিত শেষ কমান্ডের প্রস্থান স্থিতি। যদি কোন কমান্ড চালানো হয় তবে exit status 0 হয়। বর্তমান ডিরেক্টরীতে ফাইলটি খোলার জন্য প্রথমে একটি প্রচেষ্টা করা হয়েছে, এবং যদি কোনও ফাইল পাওয়া যায় না, তাহলে শেলটি স্ক্রিপ্টের জন্য PATH ডিরেক্টরির মধ্যে অনুসন্ধান করে।

আবাহন

একটি লগইন শেলটি হল যার প্রথম অক্ষরটি যুক্তি শূন্য হয় - অথবা, --login বিকল্পটি দিয়ে শুরু করা হয়েছে।

একটি ইন্টারেক্টিভ শেলটি অ- অজানা আর্গুমেন্টগুলি ছাড়া শুরু এবং -c বিকল্প ছাড়া, যার স্ট্যান্ডার্ড ইনপুট এবং আউটপুট উভয় টার্মিনালগুলির সাথে সংযুক্ত (যেমন isatty (3) দ্বারা নির্ধারিত), অথবা -i বিকল্প দ্বারা শুরু করা হয়। PS1 সেট করা হয় এবং $ - অন্তর্ভুক্ত থাকে যদি bash ইন্টারেক্টিভ হয়, এই শেল স্ক্রিপ্ট বা স্টার্টআপ ফাইলকে এই অবস্থা পরীক্ষা করতে অনুমতি দেয়।

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

যখন বাশে একটি ইন্টারেক্টিভ লগইন শেল হিসাবে প্রযোজ্য হয় - অথবা অ-ইন্টারেক্টিভ শেল হিসাবে --login বিকল্পটি, এটি প্রথমটি / etc / প্রোফাইল ফাইল থেকে কমান্ডগুলি চালায় এবং সঞ্চালন করে, যদি সেই ফাইলটি বিদ্যমান। যে ফাইলটি পড়ার পরে, এটি ~ / .bash_profile , ~ / .bash_login এবং ~ / .profile এর জন্য দেখায়, সেই ক্রমে, এবং যেগুলি প্রথম বিদ্যমান এবং পাঠযোগ্য সেগুলির কমান্ডগুলি চালায় এবং চালায়। --noprofile বিকল্প ব্যবহার করা যেতে পারে যখন শেলটি এই আচরণটি বন্ধ করতে শুরু করে।

যখন একটি লগইন শেল প্রস্থান করে, তখন এটি ~ / .bash_logout ফাইল থেকে কমান্ডগুলি চালায় এবং সঞ্চালন করে, যদি এটি বিদ্যমান থাকে।

যখন কোনও ইন্টারেক্টিভ শেল একটি লগইন শেল না হয়, তখন বিস Read / execution কমান্ডগুলি ~ / .bashrc থেকে , যদি সেই ফাইলটি বিদ্যমান থাকে। এটি --norc বিকল্পটি ব্যবহার করে আটকানো যেতে পারে। --rcfile ফাইলের বিকল্পটি ~ / .bashrc- পরিবর্তে ফাইল থেকে কমান্ডগুলি পড়তে এবং সঞ্চালনের জন্য বিশ বাধ্য করবে।

উদাহরণস্বরূপ, একটি শেল স্ক্রিপ্ট চালানোর জন্য যখন বিস শুরু করা হয় না, উদাহরণস্বরূপ, এটি পরিবেশে পরিবর্তনশীল BASH_ENV এর জন্য প্রযোজ্য হয়, এটি যদি সেখানে উপস্থিত হয় তবে তার মানটি প্রসারিত করে এবং প্রসারিত করা এবং এক্সিকিউট করার জন্য একটি ফাইলের নাম হিসাবে প্রসারিত মান ব্যবহার করে । নিম্নরূপ কমান্ড চালানো হয়েছে হিসাবে বাশ আচরণ করে:

যদি [-n "$ BASH_ENV"]; তারপর "$ BASH_ENV"; ফাই

কিন্তু PATH ভেরিয়েবলটির মান ফাইলের নাম অনুসন্ধান করতে ব্যবহার করা হয় না।

যদি bash নামে নামটি শাষিত হয় , তবে এটি পি এর ঐতিহাসিক সংস্করণের প্রারম্ভিক আচরণকে যতটা সম্ভব যতটা সম্ভব PIXIX প্রমিতের সাথে সামঞ্জস্যপূর্ণ করার চেষ্টা করে। যখন একটি ইন্টারেক্টিভ লগইন শেল রূপে প্রয়োগ করা হয় অথবা --login বিকল্পের সাথে একটি অ-ইন্টারেক্টিভ শেল, এটি প্রথমটি / etc / profile এবং ~ / .profile থেকে কমান্ডগুলি চালানোর প্রচেষ্টা করে এবং সেই ক্রমে। --noprofile বিকল্পটি এই আচরণটি আটকানোর জন্য ব্যবহার করা যেতে পারে। যখন নাম শ এর সাথে একটি ইন্টারেক্টিভ শেল হিসাবে চালু করা হয়, bash পরিবর্তনশীল ENV এর জন্য দেখায়, এটি সংজ্ঞায়িত করা হলে তার মানটি প্রসারিত করে এবং প্রসারিত করা এবং এক্সিকিউট করার জন্য একটি ফাইলের নাম হিসাবে প্রসারিত মান ব্যবহার করে। যেহেতু শেলটি শাও হিসাবে ব্যবহৃত হয় সেহেতু অন্য যে কোন স্টার্টআপ ফাইল থেকে কমান্ডগুলি চালাতে এবং সঞ্চালন করার প্রচেষ্টা করা হয় না, --rcfile বিকল্পের কোনো প্রভাব নেই। নামের একটি শব্দের সাথে একটি অ-ইন্টারেক্টিভ শেল যোগ করা অন্য স্টার্টআপ ফাইলগুলি পড়ার চেষ্টা করে না। যখন শ শ চালু করা হয়, শুরু ফাইলগুলি পড়ার পরে bash posix মোডে প্রবেশ করে।

যখন প্যাসিফিক মোডে চালু করা হয় - যেমন- পোপসোস কমান্ড লাইন বিকল্পটি, এটি স্টার্টআপ ফাইলগুলির জন্য POSIX মান অনুসরণ করে। এই মোডে, ইন্টারেক্টিভ শেলগুলি ENV ভেরিয়েবল প্রসারিত করে এবং কমান্ডগুলি ফাইল থেকে পড়া এবং সম্পাদন করা হয় যার নামটি প্রসারিত মান। অন্য কোনও স্টার্টআপ ফাইলগুলি পড়তে হয় না।

ব্যাট রিমোট শেল ডেমন দ্বারা পরিচালিত হচ্ছে তা নির্ধারণ করার প্রচেষ্টা করে, সাধারণত rshd । যদি bash নির্ধারণ করে যে এটি rshd দ্বারা চালানো হচ্ছে, এটি ~ / .bashrc থেকে কমান্ডগুলি চালায় এবং সঞ্চালন করে, যদি সেই ফাইলটি বিদ্যমান থাকে এবং এটি পঠনযোগ্য। এটি sh হিসাবে আহ্বান যদি এটি করবেন না --norc বিকল্পটি এই আচরণকে অবরুদ্ধ করার জন্য ব্যবহার করা যেতে পারে, এবং অন্য ফাইলকে পড়ার জন্য বাধ্য করার জন্য -rcfile বিকল্পটি ব্যবহার করা যেতে পারে, কিন্তু rshd সাধারণত ঐ বিকল্পগুলির সাথে শেলকে আহ্বান করে না বা তাদের নির্দিষ্ট করা অনুমতি দেয় না

যদি প্রকৃত ব্যবহারকারী (গোষ্ঠী) আইডি এর সাথে কার্যকর ব্যবহারকারী (গোষ্ঠী) আইডি দিয়ে শেল শুরু হয়, এবং -p বিকল্পটি সরবরাহ করা হয় না, কোন স্টার্টআপ ফাইলগুলি পড়া হয় না, শেল ফাংশন পরিবেশ থেকে উত্তরাধিকারসূত্রে পাওয়া যায় না, SHELLOPTS পরিবর্তনশীল, এটি পরিবেশে প্রদর্শিত হলে, উপেক্ষা করা হয়, এবং কার্যকর ব্যবহারকারী আইডি বাস্তব ইউজার আইডি সেট করা হয়। যদি -p বিকল্প অলৌকিকভাবে সরবরাহ করা হয়, তবে স্টার্ট আপ আচরণ একই, তবে কার্যকর ইউজার আইডি রিসেট করা হয় না।

সংজ্ঞা

নিম্নোক্ত সংজ্ঞাগুলি এই নথির বাকি অংশে ব্যবহৃত হয়।

ফাঁকা

একটি স্থান বা ট্যাব

শব্দ

শেল দ্বারা একটি ইউনিট হিসাবে গণ্য অক্ষর একটি ক্রম। টোকেন হিসাবেও পরিচিত।

নাম

একটি শব্দ শুধুমাত্র আলফানিউমেরিক অক্ষর এবং আন্ডারস্কোর গঠিত, এবং একটি বর্ণানুক্রমিক অক্ষর বা একটি underscore সঙ্গে শুরু। এছাড়াও একটি শনাক্তকারী হিসাবে উল্লেখ করা।

metacharacter

একটি অক্ষর যে, যখন unquoted, শব্দ আলাদা। নিম্নলিখিত এক:

| &; () <> স্পেস ট্যাব

নিয়ন্ত্রণ অপারেটর

একটি টোকেন যা একটি কন্ট্রোল ফাংশন করে। এটি নিম্নলিখিত প্রতীকগুলির মধ্যে একটি:

|| &&; ;; () | <সম্পর্কে newline>

সংরক্ষিত শব্দসমূহ

সংরক্ষিত শব্দ শব্দের একটি বিশেষ অর্থ আছে যে শব্দ। নিম্নোক্ত শব্দগুলি স্বতন্ত্র হিসাবে স্বীকৃত হয় যখন unquoted এবং একটি সহজ কমান্ডের প্রথম শব্দ (নীচের SHELL GRAMMAR দেখুন) বা একটি তৃতীয় শব্দ শব্দ বা কমান্ড:

! মামলাটি যদি ফাংশনটির জন্য নির্বাচন করা হয় তবে অন্যথায় {} সময় [[]] পর্যন্ত নির্বাচন করুন

শেল গ্রেমর

সহজ কমান্ড

একটি সহজ কমান্ড হল ঐচ্ছিক ভেরিয়েবলের একটি ক্রম যা ফাঁকা অক্ষর ও পুনর্নির্দেশনা দ্বারা অনুসরণ করা হয় এবং একটি কন্ট্রোল অপারেটর দ্বারা বন্ধ করা হয়। প্রথম শব্দটি কার্যকর করার কমান্ডটি নির্দিষ্ট করে এবং আর্গুমেন্ট শূন্য হিসাবে প্রেরণ করা হয়। অবশিষ্ট শব্দগুলি আয়োজিত কমান্ডের আর্গুমেন্ট রূপে প্রেরণ করা হয়।

একটি সাধারণ কমান্ডের রিটার্ন মান হল এর প্রস্থান স্ট্যাটাস, অথবা 128 + n যদি কমান্ডটি n এর দ্বারা বন্ধ হয়।

পাইপলাইন

একটি পাইপলাইন অক্ষর দ্বারা পৃথক এক বা একাধিক কমান্ডের ক্রম । একটি পাইপলাইন জন্য বিন্যাস হল:

[ সময় [ -পি ]] [! ] কমান্ড [ | কমান্ড ২ ...]

কমান্ডের মান আউটপুটটি কমান্ড 2-এর স্ট্যান্ডার্ড ইনপুটের একটি পাইপের মাধ্যমে সংযুক্ত করা হয়। এই সংযোগটি কমান্ড দ্বারা নির্দিষ্ট করা কোনও redirections আগে সঞ্চালিত হয় (নীচের REDIRECTION দেখুন)।

যদি সংরক্ষিত শব্দ ! একটি পাইপলাইন পূর্ববর্তী, যে পাইপলাইন এর প্রস্থান অবস্থা শেষ কমান্ডের প্রস্থান স্থিতি লজিক্যাল নয়। অন্যথায়, পাইপলাইনের অবস্থা হল সর্বশেষ কমান্ডের প্রস্থান স্থিতি। একটি মান ফেরত আগে শূন্য পাইপলাইনে সমস্ত কমান্ডের জন্য অপেক্ষা করে।

পাইপলাইনের পূর্বে যদি সংরক্ষিত শব্দটি সংরক্ষিত থাকে, তবে পাইপ লাইনটি বন্ধ হয়ে গেলে তার এক্সপোজেশন দ্বারা উপভোগ করা ব্যবহারকারী এবং সিস্টেমের সময় অতিবাহিত হয়। -p বিকল্পটি POSIX দ্বারা নির্ধারিত আউটপুট বিন্যাস পরিবর্তন করে। TIMEFORMAT ভেরিয়েবলটি একটি ফরম্যাট স্ট্রিংতে সেট করা যেতে পারে যা সময়জ্ঞান তথ্য প্রদর্শিত হবে তা নির্দিষ্ট করে; নীচের শেল ভেরিয়েবলের সময় TIMEFORMAT এর বিবরণটি দেখুন।

একটি পাইপলাইন প্রতিটি কমান্ড একটি পৃথক প্রক্রিয়া (যেমন, একটি subshell মধ্যে) হিসাবে মৃত্যুদন্ড কার্যকর করা হয়।

তালিকাসমূহ

একটি তালিকা অপারেটরের এক দ্বারা বিভক্ত এক বা একাধিক পাইপলাইন একটি ক্রম ; , & , && , অথবা || , এবং এক দ্বারা অবশেষে বন্ধ ; , এবং , বা

এই তালিকা পরিচালকদের, && এবং || সমান precedence আছে, দ্বারা অনুসরণ ; এবং , যার সমান অগ্রাধিকার আছে।

কমান্ডগুলি সীমাবদ্ধ করার জন্য এক বা একাধিক নতুন লাইন একটি সেমিকোলন পরিবর্তে একটি তালিকায় প্রদর্শিত হতে পারে

যদি একটি কমান্ড কন্ট্রোল অপারেটর দ্বারা বন্ধ করা হয় এবং শেল একটি সাবসেলে ব্যাকগ্রাউন্ডে কমান্ডটি চালায়। শেলটি শেষ করার কমান্ডের জন্য অপেক্ষা না করে, এবং রিটার্ন স্ট্যাটাস 0 হয় ক্রমানুসারে মৃত্যুদন্ড কার্যকর করা হয়; শেলটি প্রতিটি কমান্ডের জন্য ঘুরে শেষ করার জন্য অপেক্ষা করে। ফিরে অবস্থা মৃত্যুদন্ডের সর্বশেষ কমান্ডের প্রস্থান স্থিতি।

কন্ট্রোল অপারেটর && এবং || যথাক্রমে এবং তালিকা এবং OR তালিকা নির্দেশ করে একটি এবং তালিকা ফর্ম আছে

কমান্ড 1 এবং কম্যান্ড 2

কমান্ড 2 কার্যকর করা হয়, এবং শুধুমাত্র যদি, কমান্ড 1 শূন্যের একটি প্রস্থান স্ট্যাটাস ফেরৎ।

একটি OR তালিকা ফর্ম আছে

কমান্ড 1 || command2

কমান্ড 2 কার্যকর করা হয় এবং যদি শুধুমাত্র কমান্ড 1 অ-শূন্য প্রস্থান স্থিতিটি ফেরত দেয়। তালিকার মধ্যে সম্পাদিত শেষ কমান্ডের প্রস্থান স্থিতি হল AND এবং OR তালিকার ফিরে অবস্থা।

কম্পাউন্ড কমান্ডগুলি

একটি যৌগিক আদেশ নিম্নলিখিতগুলির মধ্যে একটি:

( তালিকা )

তালিকা একটি subshell মধ্যে সঞ্চালিত হয়। কমান্ড সম্পন্ন হওয়ার পরে শেলের পরিবেশকে প্রভাবিত করে এমন ভেরিয়েবল অ্যাসাইনমেন্ট এবং বিল্টিন কমান্ডটি কার্যকর থাকবে না। রিটার্ন স্ট্যাটাস হল তালিকা থেকে প্রস্থান স্ট্যাটাস।

{ তালিকা ; }

তালিকাটি কেবল বর্তমান শেল পরিবেশে কার্যকর করা হয়। তালিকাটি একটি নতুন লাইন বা সেমিকোলন দিয়ে সমাপ্ত করা আবশ্যক। এটি একটি গ্রুপ কমান্ড হিসাবে পরিচিত। রিটার্ন স্ট্যাটাস হল তালিকা থেকে প্রস্থান স্ট্যাটাস। উল্লেখ্য যে metacharacters ( এবং ) অসদৃশ, { এবং } সংরক্ষিত শব্দ আছে এবং একটি সংরক্ষিত শব্দ স্বীকৃত হতে অনুমতি দেওয়া হয় যেখানে ঘটবে। যেহেতু তারা একটি শব্দ বিরতির কারণ করে না, তাদের হোয়াইটস্পেসের তালিকা থেকে আলাদা করা উচিত।

(( অভিব্যক্তি ))

এরিথটিক মূল্যায়ন নীচে বর্ণিত নিয়ম অনুযায়ী অভিব্যক্তি মূল্যায়ন করা হয় যদি এক্সপ্রেশনের মানটি অ-শূন্য হয়, তবে ফিরে আসার অবস্থা 0; অন্যথায় রিটার্ন স্ট্যাটাস 1. এই " এক্সপ্রেশন " করতে ঠিক সমতুল্য হয়।

[[ অভিব্যক্তি ]]

শর্তাধীন অভিব্যক্তি প্রকাশের মূল্যায়নের উপর ভিত্তি করে 0 বা 1 এর একটি স্থিতি ফিরে আসুন। অভিব্যক্তি কন্ডিশনাল এক্সপ্রেসশন অধীনে বর্ণিত primaries গঠিত হয় শব্দ বিভাজন এবং pathname বিস্তার [[ এবং ]] মধ্যে শব্দের উপর সঞ্চালিত হয় না; tilde সম্প্রসারণ, পরামিতি এবং পরিবর্তনশীল বিস্তার, সংখ্যাবৃদ্ধি বিস্তার, কমান্ড প্রতিস্থাপন, প্রক্রিয়া প্রতিস্থাপন, এবং উদ্ধৃতি অপসারণ করা হয়।

যখন == এবং ! = অপারেটর ব্যবহার করা হয়, অপারেটরের ডানদিকে স্ট্রিংটি একটি প্যাটার্ন হিসেবে বিবেচিত হয় এবং প্যাটার্ন মিলিংয়ের নিচে বর্ণিত নিয়ম অনুসারে মিলিত হয়। রিটার্ন মান হল 0 যদি স্ট্রিং মিল হয় বা প্যাটার্নের সাথে মেলে না, ক্রমানুসারে এবং 1 অন্যভাবে। প্যাটার্ন কোন অংশ একটি স্ট্রিং হিসাবে মিলিত হতে বাধ্য করার জন্য উদ্ধৃত করা যেতে পারে।

নিম্নোক্ত অপারেটরগুলি ব্যবহার করে অভিব্যক্তিগুলি মিলিত হতে পারে, যা অগ্রাধিকার হ্রাসকরণের তালিকাভুক্ত:

( অভিব্যক্তি )

প্রকাশের মান প্রদান করে এটি অপারেটরদের স্বাভাবিক অগ্রাধিকার ওভাররাইড করতে ব্যবহার করা যেতে পারে।

! অভিব্যক্তি

সত্য যদি এক্সপ্রেশন মিথ্যা হয়

expression1 && expression2

সত্য যদি উভয় অভিব্যক্তি 1 এবং expression2 সত্য হয়।

expression1 || expression2 সত্য যদি এক্সপ্রেশন 1 বা এক্সপ্রেশন ২ সত্য হয়।

&& এবং || অপারেটর expression2 মূল্যায়ন না যদি expression1 মান সম্পূর্ণ শর্তসাপেক্ষ অভিব্যক্তি ফিরে মান নির্ধারণ করতে যথেষ্ট।

নাম জন্য [ শব্দ ]; তালিকা করুন ; সম্পন্ন

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

জন্য (( expr1 ; expr2 ; expr3 )); তালিকা করুন ; সম্পন্ন

প্রথমত, এরিথ্যাটিক মূল্যায়ন নীচে বর্ণিত নিয়ম অনুযায়ী গণিত এক্সপ্রেশন 1 এর মূল্যায়ন করা হয় গাণিতিক অভিব্যক্তি expr2 তারপর বারবার মূল্যায়ন করা হয় যতক্ষণ না এটি শূন্য মূল্যায়ন করে। প্রতিটি সময় expr2 একটি অ শূন্য মান মূল্যায়ন করে, তালিকাটি কার্যকর করা হয় এবং গাণিতিক অভিব্যক্তি expr3 মূল্যায়ন করা হয়। যদি কোনও অভিব্যক্তি বাদ দেওয়া হয়, তবে এটি 1 টি মূল্যায়নের মত আচরণ করে। রিটার্ন মান হচ্ছে শেষ কমান্ডের প্রস্থান স্থিতিটি যে তালিকাটি কার্যকর করা হয়, অথবা মিথ্যা যদি এক্সপ্রেশন কোনও অবৈধ হয়।

নাম [ শব্দ ]; তালিকা করুন ; সম্পন্ন

নিম্নলিখিত পদগুলির তালিকা প্রসারিত করা হয়, আইটেমগুলির একটি তালিকা তৈরি করা। প্রসারিত শব্দের সংকলনটি একটি নির্দিষ্ট সংখ্যা দ্বারা মুদ্রিত হয়, প্রতিটি সংখ্যা পূর্বে। যদি শব্দটি বাদ দেওয়া হয় তবে অবস্থানের প্যারামিটারগুলি মুদ্রিত হয় (নীচে PARAMETERS দেখুন)। PS3 প্রম্পট তারপর প্রদর্শিত হয় এবং একটি লাইন মান ইনপুট থেকে পড়া। যদি লাইনটি প্রদর্শিত শব্দের মধ্যে একটি সংখ্যার সংখ্যার থাকে, তাহলে নামটির মান সেই শব্দে সেট করা আছে। যদি লাইন ফাঁকা হয়, শব্দ এবং প্রম্পট আবার প্রদর্শিত হবে। EOF পড়া হয়, কমান্ড সম্পন্ন হয়। অন্য কোনও মূল্য পড়ার কারণে নামটি বাতিল করা যাবে না। পড়া লাইন পরিবর্তনশীল REPLY সংরক্ষণ করা হয়। প্রতিটি নির্বাচন পরে একটি বিভাজক কমান্ড কার্যকর না হওয়া পর্যন্ত তালিকাটি কার্যকর করা হয়। নির্বাচনের প্রস্থান স্থিতি হলো তালিকাতে সম্পাদিত সর্বশেষ কমান্ডের প্রস্থান স্থিতি, অথবা শূন্য না থাকলে কোন আদেশ কার্যকর করা হয় না।

ক্ষেত্রে [[[]] প্যাটার্ন [ | প্যাটার্ন ]

একটি কেস কমান্ড প্রথম শব্দটি প্রসারিত করে, এবং প্রতিটি প্যাটার্নের পরিবর্তে এর সাথে মিল করার চেষ্টা করে, পাথনাম সম্প্রসারণ (নীচের পাথনাম সম্প্রসারণ দেখুন) জন্য একই মানানসই নিয়মগুলি ব্যবহার করে। যখন একটি মিল পাওয়া যায়, সংশ্লিষ্ট তালিকাটি কার্যকর করা হয়। প্রথম ম্যাচের পর কোনও পরবর্তী ম্যাচের চেষ্টা করা হয় না। কোনও প্যাটার্ন মেলে না তবে প্রস্থান স্থিতিটি শূন্য। অন্যথায়, এটি তালিকাতে সম্পাদিত শেষ কমান্ডের প্রস্থান স্থিতি।

যদি তালিকা ; তারপর তালিকা; [ এলিএফ তালিকা ; তারপর তালিকা ; ] ... [ অন্য তালিকা ; ] ফাই

যদি তালিকাটি কার্যকর করা হয়। যদি এর প্রস্থান স্ট্যাটাস শূন্য হয়, তাহলে তালিকাটি কার্যকর করা হয়। অন্যথায়, প্রতিটি elif তালিকা পাল্টানো হয়, এবং যদি এর প্রস্থান স্ট্যাটাস শূন্য হয়, সংশ্লিষ্ট তারপর তালিকাটি কার্যকর করা হয় এবং কমান্ডটি সম্পন্ন হয়। অন্যথায়, অন্য তালিকাটি চালানো হয়, যদি উপস্থিত হয়। প্রস্থান স্ট্যাটাসটি শেষ কমান্ডের প্রস্থান স্ট্যাটাস হয়, অথবা শূন্য অবস্থায় যদি কোন শর্ত সত্য না পরীক্ষা করে।

যখন তালিকা ; তালিকা করুন ; সম্পন্ন

তালিকা পর্যন্ত ; তালিকা করুন ; সম্পন্ন

যখনই কমান্ড ধারাবাহিকভাবে do তালিকা কার্যকর করে তখনই তালিকাতে সর্বশেষ কমান্ডটি শূন্যের একটি প্রস্থান স্ট্যাটাস ফেরত দেয়। যতক্ষণ পর্যন্ত কমান্ডটি কমান্ডের সাথে অভিন্ন না হয়, ততক্ষণ টেস্টটি বাতিল করা হয়; তালিকাটি শেষ করা হয় যতক্ষণ তালিকা তালিকায় সর্বশেষ কমান্ডটি একটি অ-শূন্য প্রস্থান স্ট্যাটাস ফেরত দেওয়া হয়। শেষ এবং শেষ পর্যন্ত কমান্ডের প্রস্থান স্থিতিটি হল শেষ do list কমান্ডের প্রস্থান স্থিতি, অথবা শূন্য না থাকলে চালানো হয়।

[ ফাংশন ] নাম () { তালিকা ; }

এটি নামের নামে একটি ফাংশন নির্ধারণ করে। ফাংশনটির অংশ হল {এবং} এর মধ্যে কমান্ডের তালিকা । যখনই নামটি একটি সহজ কমান্ডের নাম হিসাবে নির্দিষ্ট করা হয় তখন এই তালিকাটি কার্যকর করা হয়। একটি ফাংশন এর প্রস্থান স্ট্যাটাস শরীরের মৃত্যুদন্ড শেষ কমান্ডের প্রস্থান অবস্থা। (নীচের কাজ দেখুন।)

মন্তব্য

একটি অ-ইন্টারেক্টিভ শেল বা একটি ইন্টারেক্টিভ শেলের মধ্যে, যা দোকানের বিল্ডিনে ইন্টারেক্টিভ_কমমেন্ট বিকল্পটি সক্রিয় থাকে (নীচের SHELL BUILTIN COMMANDS দেখুন), # এর সাথে শুরু হওয়া একটি শব্দ যা এই শব্দটি এবং সমস্ত অবশিষ্ট অক্ষরগুলিকে উপেক্ষা করা হবে। ইন্টারেক্টিভ_কমমেন্ট বিকল্প ছাড়া একটি ইন্টারেক্টিভ শেলটি মন্তব্যের অনুমতি দেয় না। ইন্টারেক্টিভ_কমমেন্ট বিকল্প ডিফল্ট ইন্টারেক্টিভ শেলগুলিতে থাকে।

মূল্য উদ্ধৃতি

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

সংজ্ঞা অনুযায়ী উপরে তালিকাভুক্ত প্রতিটি metacharacters শেলের বিশেষ অর্থ আছে এবং এটি নিজেই প্রতিনিধিত্ব করা হয় যদি উদ্ধৃত করা আবশ্যক।

যখন কমান্ড ইতিহাস সম্প্রসারণের সুবিধাগুলি ব্যবহার করা হচ্ছে, তখন ইতিহাস সম্প্রসারণ চরিত্রটি সাধারণত ! , ইতিহাস সম্প্রসারণ প্রতিরোধ করতে উদ্ধৃত করা আবশ্যক।

তিনটি উদ্ধৃতি চিহ্ন আছে: অব্যাহতির অক্ষর , একক উদ্ধৃতি চিহ্ন, এবং ডাবল উদ্ধৃতিগুলি।

একটি অ-উদ্ধৃত ব্যাকস্ল্যাশ ( \ ) হল অব্যাহতির অক্ষর এর ব্যতিক্রম ছাড়া এটি পরবর্তী অক্ষরটির আক্ষরিক মান সংরক্ষণ করে। যদি একটি \ জোড়া প্রদর্শিত হয়, এবং ব্যাকস্ল্যাশ নিজেই উদ্ধৃত হয় না, তাহলে \ একটি লাইনের ধারাবাহিকতা হিসাবে বিবেচনা করা হয় (অর্থাৎ, এটি ইনপুট স্ট্রীম থেকে সরানো হয় এবং কার্যকরীভাবে উপেক্ষা করা হয়)।

একক উদ্ধৃতিতে অক্ষরগুলি সংযুক্ত করাগুলি উদ্ধৃতির মধ্যে প্রতিটি অক্ষরের আক্ষরিক মান সংরক্ষণ করে। একটি উদ্ধৃতি উদ্ধৃতির মধ্যে একক উদ্ধৃতি নাও হতে পারে, এমনকি একটি ব্যাকস্ল্যাশ দ্বারা পূর্বেও

$$ , ` , এবং \ ' ব্যতীত, উদ্ধৃতির মধ্যে অক্ষরের মধ্যে সকল অক্ষরের আক্ষরিক মানকে দ্বিগুণ উদ্ধৃত অক্ষরে অক্ষরে অক্ষরে রাখা হয়। অক্ষর $ এবং ` ডবল কোট মধ্যে তাদের বিশেষ অর্থ বজায় রাখা। ব্যাকস্ল্যাশ তার বিশেষ অর্থটি ধরে রাখে যখন নিম্নোক্ত অক্ষরগুলির মধ্যে নিম্নলিখিতগুলি অনুসরণ করে: $ , ` , ' , \ , অথবা । একটি ডাবল উদ্ধৃতিটি একটি ব্যাকস্ল্যাশ দ্বারা পূর্ববর্তী দ্বারা দ্বিগুণ উদ্ধৃতিতে উদ্ধৃত করা যেতে পারে।

বিশেষ প্যারামিটার * এবং @ এর বিশেষ অর্থ আছে যখন ডাবল কোট (নিচে PARAMETERS দেখুন)।

$ ' স্ট্রিং ' ফর্মের শব্দ বিশেষভাবে চিকিত্সা করা হয়। শব্দটি স্ট্রিংকে বিস্তৃত করে, ব্যাকস্ল্যাশ-পালিত অক্ষরের পরিবর্তে ANSI C মান দ্বারা চিহ্নিত করা হয়। ব্যাকস্ল্যাশ অব্যাহতির সিকোয়েন্সগুলি, যদি উপস্থিত হয়, নিম্নরূপ ডিকোড করা হয়:

\ একটি

সতর্কতা (ঘণ্টা)

\ b হল

ব্যাকস্পেস

\ ই

একটি অব্যাহতির চরিত্র

\ চ

আমার মুখোমুখিআমার মুখোমুখি

\ N

নতুন লাইন

পান \ r

গাড়ি ফেরত

\ টি

অনুভূমিক ট্যাব

\ বনাম

উল্লম্ব ট্যাব

\\

ব্যাকস্ল্যাশ

\ '

একক উদ্ধৃতি

\ n এন এন

আট বিট অক্ষর যার মান অকট্যাল মান nnn (এক থেকে তিনটি সংখ্যা)

\ x HH

আট বিট চরিত্রের মান যার হেক্সাডেসিমেল মান এইচএইচ (এক বা দুই হেক্স ডিজিট)

\ c x

একটি নিয়ন্ত্রণ- এক্স অক্ষর

প্রসারিত ফলাফল একক উদ্ধৃত হয়, যেমন ডলার চিহ্ন উপস্থিত ছিল না।

একটি ডলার চিহ্ন ( $ ) দ্বারা পূর্বে একটি ডাবল উদ্ধৃত স্ট্রিং বর্তমান অবস্থান অনুযায়ী স্ট্রিংটি অনুবাদ করা হবে। যদি বর্তমান লোকেল হল C বা POSIX , ডলার চিহ্ন উপেক্ষা করা হয়। যদি স্ট্রিংটি অনুবাদ করা হয় এবং প্রতিস্থাপিত হয়, তবে প্রতিস্থাপনটি ডাবল কোট করা হয়।

প্যারামিটার

একটি প্যারামিটার এমন একটি সত্তা যা মূল্য সংরক্ষণ করে। এটি বিশেষ নামগুলির একটি তালিকা, একটি সংখ্যা, বা নীচে বর্ণিত বিশেষ অক্ষর হতে পারে। শেল এর উদ্দেশ্যে, একটি পরিবর্তনশীল একটি নাম দ্বারা চিহ্নিত একটি পরামিতি। একটি পরিবর্তনশীল একটি মান এবং শূন্য বা আরও বৈশিষ্ট্য আছেডিক্লেয়ার বিলিন কমান্ডের সাহায্যে বৈশিষ্ট্যাবলীগুলি বরাদ্দ করা হয় ( শেল বিলিন কমান্ডগুলির মধ্যে নীচের ঘোষণাটি দেখুন )।

একটি মান নির্ধারিত হলে এটি একটি মান নির্ধারণ করা হয়। নাল স্ট্রিং একটি বৈধ মান। একবার একটি পরিবর্তনশীল সেট করা হলে, এটি আনসেট বিল্টিন কমান্ড (নীচের SHELL BUILTIN COMMANDS দেখুন) ব্যবহার করে সেট করা যাবে না।

একটি পরিবর্তনশীল ফর্মের একটি বিবৃতি দ্বারা নির্ধারিত হতে পারে

নাম = [ মান ]

মান দেওয়া না হলে, ভেরিয়েবলটি নিল স্ট্রিংকে নিযুক্ত করা হয়। সমস্ত মান টিল্ড বিস্তার, পরামিতি এবং পরিবর্তনশীল বিস্তার, কমান্ড প্রতিস্থাপন, গণিত সম্প্রসারণ, এবং উদ্ধৃতি অপসারণ (নীচে বর্ধিতকরণ দেখুন) যদি ভেরিয়েবলের পূর্ণসংখ্যা বৈশিষ্ট্যের সেট থাকে তবে $ ((...)) এক্সটেনশন ব্যবহার না করা থাকলেও মানটি গাণিতিক সম্প্রসারণের বিষয়। নীচের ( Arithmetic expansion দেখুন) স্পেশাল প্যারামিটারগুলির নীচে বর্ণিত "$ @" ব্যতিক্রম ছাড়া ওয়ার্ড বিভাজনটি সঞ্চালিত হয় না। Pathname সম্প্রসারণ সঞ্চালিত হয় না। অ্যাসাইনমেন্ট স্টেটমেন্টগুলি ডিক্লেয়ার , টাইপসেট , এক্সপোর্ট , পাঠ্যলি এবং স্থানীয় বিল্ডিন ​​কমান্ডের আর্গুমেন্ট হিসাবেও প্রদর্শিত হতে পারে।

অবস্থানগত প্যারামিটারসমূহ

একটি অবস্থানগত প্যারামিটার হল একটি প্যারামিটার যা এক বা একাধিক ডিজিটের সংখ্যার দ্বারা চিহ্নিত করা হয়, একক সংখ্যার ছাড়া 0. শব্দের আর্গুমেন্টগুলি থেকে অবস্থানীয় প্যারামিটারগুলিকে বরাদ্দ করা হয় এবং সেট বিল্ডিন ​​কমান্ড ব্যবহার করে পুনঃনির্ধারণ করা যেতে পারে। অবস্থানগত প্যারামিটারগুলিকে অ্যাসাইনমেন্ট বিবৃতিগুলির সাথে ভাগ করা যাবে না। যখন একটি শেল ফাংশন কার্যকর করা হয় তখন অবস্থানগত প্যারামিটার অস্থায়ীভাবে পরিবর্তিত হয় (নীচের ক্রিয়াকলাপগুলি দেখুন)।

যখন একটি অবস্থানীয় প্যারামিটারটি একটি একক অঙ্কের বেশি বাড়ানো হয়, তখন এটি বন্ধনীগুলিতে আবদ্ধ থাকতে হবে (নীচে EXPATIONION দেখুন)।

বিশেষ পরামিতি

শেল বিভিন্ন পরামিতি বিশেষভাবে আচরণ করে। এই পরামিতি শুধুমাত্র উল্লেখ করা যেতে পারে; তাদের নিয়োগের অনুমতি নেই।

*

এক থেকে শুরু, অবস্থানগত পরামিতি প্রসারিত যখন এক্সপ্লেশনটি দ্বিগুণ উদ্ধৃতি চিহ্নের মধ্যে ঘটে তখন এটি আইএফএস স্পেশাল ভেরিয়েবলের প্রথম অক্ষরের দ্বারা পৃথক করে প্রতিটি প্যারামিটারের মান সহ একক শব্দে বিস্তৃত হয়। যে, " $ * " সমতুল্য " $ 1 c $ 2 c ... ", যেখানে c হল IFS ভেরিয়েবলের মানটির প্রথম অক্ষর। যদি আইএফএস সেট না থাকে, তবে প্যারামিটারগুলি স্পেস দ্বারা বিচ্ছিন্ন হয়। যদি IFS নাল হয়, পরামিতি হস্তক্ষেপ বিভাজক ছাড়া যোগদান করা হয়।

@

এক থেকে শুরু, অবস্থানগত পরামিতি প্রসারিত যখন ডবল উদ্ধৃতির মধ্যে বিস্তার ঘটবে, তখন প্রতিটি পরামিতি একটি পৃথক শব্দে প্রসারিত হবে। যে, " $ @ " " $ 1 " " $ 2 " এর সমতুল্য ... যখন কোন অবস্থানগত প্যারামিটার নেই, " $ @ " এবং $ @ কিছুই প্রসারিত না (অর্থাৎ, তারা সরানো হয়)।

#

দশমিক মধ্যে অবস্থানগত পরামিতি সংখ্যা প্রসারিত করুন

?

সম্প্রতি চালিত ফোরগ্রাউন্ড পাইপলাইনের স্থিতি প্রসারিত করুন।

-

বর্তমান বিল্ডিন ​​কমান্ড দ্বারা সেট করা বা শেল নিজেই সেট করা (যেমন -i বিকল্প) দ্বারা অবাঞ্ছিতকরণের উপর নির্দিষ্ট হিসাবে বিদ্যমান বিকল্প পতাকাগুলি প্রসারিত করুন।

$

শেল প্রক্রিয়া ID প্রসারিত একটি () subshell এ, এটি বর্তমান শেলের প্রসেস ID প্রসারিত করে, সাবসেলে নয়।

!

সম্প্রতি চালিত পটভূমি (অ্যাসিঙ্ক্রোনাস) কমান্ডের প্রসেস ID প্রসারিত করুন

0

শেল বা শেল স্ক্রিপ্টের নাম প্রসারিত করুন এই শেল প্রারম্ভে সেট করা হয় যদি ফাইলগুলির কমান্ডের সাহায্যে bash করা হয়, তাহলে $ 0 সেই ফাইলের নাম সেট করা হয়। যদি -c বিকল্পের সাথে bash শুরু করা হয়, তাহলে যদি $ 1 উপস্থিত হয় তবে স্ট্রিংটি কার্যকর করার পরে প্রথম আর্গুমেন্ট সেট করা হয়। অন্যথা, এটি নামক ফাইলের নাম সেট করা হয় যা bash আহ্বান করে, যেমনটি যুক্তি শূন্য দ্বারা দেওয়া হয়।

: _

শেল প্রারম্ভে, শেল বা শেল স্ক্রিপ্টের সম্পূর্ণ ফাইলের নাম সেট করা হলে তা যুক্তি তালিকাতে প্রেরিত হয়। পরবর্তীকালে, প্রসারিত হওয়ার পর, পূর্ববর্তী কমান্ডের শেষ আর্গুমেন্টে বিস্তৃত হয়। এছাড়াও কমান্ড চালানো এবং প্রতিটি কমান্ডের সম্পূর্ণ ফাইলের নাম সেট করা এই কমান্ডে রপ্তানি করা হয়। মেল চেক করার সময়, এই প্যারামিটারটি বর্তমানে চেক করা মেল ফাইলের নাম ধারণ করে।

শেল ভেরিয়েবল

নিম্নলিখিত ভেরিয়েবল শেল দ্বারা সেট করা হয়:

BASH

Bash এর এই উদাহরণ আহরণ করতে ব্যবহৃত পুরো ফাইলের নাম প্রসারিত করুন

BASH_VERSINFO

একটি পাঠ্যবই অ্যারে পরিবর্তনশীল যার সদস্যরা বশের এই দৃষ্টান্তের জন্য সংস্করণ তথ্য ধারণ করে। অ্যারের সদস্যগুলিকে নির্ধারিত মান নিম্নরূপ:

BASH_VERSINFO [ 0]

প্রধান সংস্করণ নম্বর ( মুক্তি )।

BASH_VERSINFO [ 1]

ছোট সংস্করণ নম্বর ( সংস্করণ )।

BASH_VERSINFO [ 2]

প্যাচ লেভেল

BASH_VERSINFO [ 3]

বিল্ড সংস্করণ

BASH_VERSINFO [ 4]

প্রকাশের স্থিতি (যেমন, বিটা 1 )।

BASH_VERSINFO [ 5]

MACHTYPE এর মান

BASH_VERSION

Bash এর এই উদাহরণের সংস্করণটি বর্ণনা করে একটি স্ট্রিংকে প্রসারিত করুন

COMP_CWORD

COMP_LINE

বর্তমান কমান্ড লাইন। এই পরিবর্তনশীল শুধুমাত্র শেল ফাংশন এবং প্রোগ্রামযোগ্য সমাপ্তি সুবিধার দ্বারা আহ্বান বহিরাগত কমান্ড (নীচে প্রোগ্রামেবল সমাপ্তি দেখুন) পাওয়া যায়।

COMP_POINT

COMP_WORDS

বর্তমান কমান্ড লাইনের মধ্যে একটি পৃথক শব্দ ধারণকারী একটি অ্যারের পরিবর্তনশীল (নীচের এরেস দেখুন)। এই ভেরিয়েবলটি শুধুমাত্র প্রোগ্রামেবল সমাপ্তির সুবিধাগুলি দ্বারা আচ্ছাদিত শেল ফাংশনগুলিতে উপলব্ধ (নীচে প্রোগ্রামেবল সমাপ্তি দেখুন)।

DIRSTACK

ডিরেক্টরি স্ট্যাকের বর্তমান সামগ্রী ধারণকারী একটি অ্যারে ভেরিয়েবল (নীচের এরেস দেখুন)। ডিরেক্টরিগুলি ড্যারস বিল্ডিন ​​দ্বারা প্রদর্শন করা হয় সেই আদেশের মধ্যে স্ট্যাকগুলিতে প্রদর্শিত হয়। এই অ্যারের ভ্যারিয়েবলের সদস্যদের নিযুক্ত করা স্ট্যাকগুলিতে ডিরেক্টরিগুলিকে সংশোধন করতে ব্যবহার করা যেতে পারে, তবে প্যাডড এবং পপড বিল্ডিনগুলি অবশ্যই ডিরেক্টরিগুলি যোগ এবং অপসারণ করতে ব্যবহার করা উচিত। এই ভেরিয়েবলের অ্যাসাইনমেন্ট বর্তমান ডিরেক্টরিটি পরিবর্তন করবে না। যদি DIRSTACK সেট না থাকে, তবে এটি তার বিশেষ বৈশিষ্ট্য হারায়, এমনকি পরবর্তীতে পুনরায় সেট করলেও।

EUID

বর্তমান ব্যবহারকারীর কার্যকারী ব্যবহারকারী আইডিতে প্রসারিত করুন, শেল প্রারম্ভে সূচনা করা হয়েছে। এই পরিবর্তনশীল শুধুমাত্র পড়তে হয়।

FUNCNAME

বর্তমান-নির্বাহক শেল ফাংশনটির নাম। এই পরিবর্তনশীল শুধুমাত্র বিদ্যমান যখন একটি শেল ফাংশন নির্বাহ করা হয়। FUNCNAME- এ অ্যাসাইনমেন্টগুলি কোনও প্রভাব রাখে না এবং একটি ত্রুটি স্থিতি ফেরত দেয়। যদি FUNCNAME সেট না থাকে তবে এটি তার বিশেষ বৈশিষ্ট্য হারায়, এমনকি পরবর্তীতে পুনরায় সেট করলেও

GROUPS টি

একটি অ্যারের ভেরিয়েবল যা বর্তমান ব্যবহারকারী একটি সদস্য। GROUPS- এ অ্যাসাইনমেন্ট কোনও প্রভাব রাখে না এবং একটি ত্রুটি স্থিতি ফেরত দেয়। যদি GROUPS সেট না হয়, তবে এটি তার বিশেষ বৈশিষ্ট্য হারায়, এমনকি পরবর্তীতে পুনরায় সেট করলেও

HISTCMD

বর্তমান কমান্ডের ইতিহাস তালিকা, বা ইতিহাস তালিকা ইনডেক্স। যদি HISTCMD সেট করা না থাকে, তবে এটি তার বিশেষ বৈশিষ্ট্য হারায়, এমনকি পরবর্তীতে পুনরায় সেট করলেও।

HOSTNAME এর

স্বয়ংক্রিয়ভাবে বর্তমান হোস্টের নামে সেট করুন।

HOSTTYPE

স্বয়ংক্রিয়ভাবে এমন একটি স্ট্রিংতে সেট করা যা আলাদাভাবে মেশিনের ধরনের বর্ণনা দেয় যা bash কার্যকরী হয়। ডিফল্ট হল সিস্টেম-নির্ভর।

LINENO

প্রতিটি সময় এই প্যারামিটারটি রেফারেন্স করা হয়, শেলটি একটি দশমিক সংখ্যা যা বর্তমান স্ক্রিপ্ট বা ফাংশন এর মধ্যে বর্তমান ক্রমিক লাইন সংখ্যা (1 দিয়ে শুরু) প্রতিনিধিত্ব করে। যখন একটি স্ক্রিপ্ট বা ফাংশন না হয়, তখন পরিবর্তিত মান অর্থপূর্ণ হওয়ার নিশ্চয়তা দেয় না। যদি লিনাক্সটি সেট না থাকে, তবে এটি তার বিশেষ বৈশিষ্ট্য হারায়, এমনকি পরবর্তীতে পুনরায় সেট করলেও।

MACHTYPE

স্বয়ংক্রিয়ভাবে একটি স্ট্রিংতে সেট করা হয় যা স্ট্যান্ডার্ড জিএনইউ সিপিইউ-কোম্পানী-সিস্টেম ফরম্যাটে, যা bash চালানো হয় তার সিস্টেমের বর্ণনাটি সম্পূর্ণরূপে বর্ণনা করে। ডিফল্ট হল সিস্টেম-নির্ভর।

OLDPWD

Cd কমান্ড দ্বারা সেট করা পূর্ববর্তী কার্যকারী ডিরেক্টরি।

OPTARG

Getopts বিল্ডিন কমান্ড দ্বারা প্রক্রিয়া শেষ বিকল্প আর্গুমেন্ট মান (নীচে SHELL BUILTIN কম্যান্ডস দেখুন)।

OPTIND

পরবর্তী আর্গুমেন্টের সূচকটি Getopts builtin কমান্ড দ্বারা প্রক্রিয়াভুক্ত করা হবে (নীচে SHELL BUILTIN COMMANDS দেখুন)।

OSTYPE

স্বয়ংক্রিয়ভাবে একটি স্ট্রিংতে সেট করা হয় যা অপারেটিং সিস্টেমের বর্ণনা দেয় যা bash কার্যকরী হয়। ডিফল্ট হল সিস্টেম-নির্ভর।

PIPESTATUS

একটি অ্যারে ভেরিয়েবল (নীচের এরেস দেখুন) যা সর্বশেষ-সম্প্রসারিত ফায়ারগ্রাউন্ড পাইপলাইন (যা কেবলমাত্র একটি কমান্ড ধারণ করতে পারে) এর প্রসেস থেকে প্রস্থান স্ট্যাটাস মানগুলির একটি তালিকা ধারণ করে।

PPID

শেল এর পিতা বা মাতা প্রসেস আইডি। এই পরিবর্তনশীল শুধুমাত্র পড়তে হয়।

গণপূর্ত বিভাগের

Cd কমান্ড দ্বারা নির্ধারিত বর্তমান কার্যকারী ডিরেক্টরি।

র্যান্ডম

প্রতিটি সময় এই প্যারামিটারটি রেফারেন্স করা হয়, 0 এবং 32767 এর মধ্যে একটি র্যান্ডম পূর্ণসংখ্যার উত্পন্ন হয়। র্যান্ডম একটি মান বরাদ্দ দ্বারা র্যান্ডম সংখ্যা ক্রম আরম্ভ করা যেতে পারে। যদি র্যান্ডমটি সেট না থাকে তবে এটি তার বিশেষ বৈশিষ্ট্য হারায়, এমনকি পরবর্তীতে পুনরায় সেট করা থাকলেও।

REPLY

কোন আর্গুমেন্ট সরবরাহ করা না হলে read builtin কমান্ড দ্বারা পড়া ইনপুট লাইন সেট করুন।

সেকেন্ড

প্রতিটি সময় এই প্যারামিটারটি রেফারেন্স করা হয়, শেল আহ্বান ফিরে আসার পর থেকে সেকেন্ডের সংখ্যা। যদি একটি মান SECONDS তে নির্ধারিত হয়, তাহলে পরবর্তী রেফারেন্সগুলিতে ফেরত আসা মান হল সীমাবদ্ধতার সাথে যোগফলের যোগফল থেকে সেকেন্ডের সংখ্যা। যদি SECONDS সেট না থাকে, এটি তার বিশেষ বৈশিষ্ট্য হারায়, এমনকি পরবর্তীতে পুনরায় সেট করলেও।

SHELLOPTS

সক্রিয় শেল বিকল্পগুলির একটি কোলন দ্বারা পৃথক তালিকা। তালিকার প্রত্যেকটি শব্দটি সেট বিল্ডিন কমান্ড -তে বিকল্পের জন্য একটি বৈধ আর্গুমেন্ট (নীচের SHELL BUILTIN COMMANDS দেখুন)। SHELLOPTS- এ উপস্থিত বিকল্পগুলি সেট- দ্বারা প্রতিবেদন করা হয় যদি এই ভেরিয়েবলটি পরিবেশে থাকে তবে bash আরম্ভ হলে, তালিকায় থাকা প্রতিটি শেল বিকল্প কোনও স্টার্টআপ ফাইলগুলি পড়ার আগে সক্ষম হবে। এই পরিবর্তনশীল শুধুমাত্র পঠনযোগ্য।

SHLVL

প্রতিটি সময় একটি বার্ষিক বাশার উত্স শুরু হয়।

ইউআইডি

বর্তমান ব্যবহারকারীর ব্যবহারকারী আইডি প্রসারিত করুন, শেল প্রারম্ভে সূচনাপ্রাপ্ত। এই পরিবর্তনশীল শুধুমাত্র পড়তে হয়।

নিম্নলিখিত ভেরিয়েবল শেল দ্বারা ব্যবহৃত হয় কিছু ক্ষেত্রে, bash একটি পরিবর্তনশীল একটি ডিফল্ট মান নির্ধারণ; এই ক্ষেত্রে নীচের তালিকাভুক্ত করা হয়।

BASH_ENV

যদি এই প্যারামিটারটি সেট করা হয়, যখন bash একটি শেল স্ক্রিপ্ট চালনা করে, তার মানকে ফাইলের নাম হিসাবে ব্যাখ্যা করা হয় যার মধ্যে শেলটি আরম্ভ করার জন্য ~ / .bashrcBASH_ENV এর মানটি প্যারামিটার সম্প্রসারণ, কমান্ড প্রতিস্থাপন, এবং ফাইলের নাম হিসাবে ব্যাখ্যা করার আগে আংশিক সম্প্রসারণের অধীন। PATH এর ফলাফল ফাইলের নামটি অনুসন্ধান করতে ব্যবহৃত হয় না।

CDPATH

সিডি কমান্ডের জন্য অনুসন্ধান পাথ। এটি একটি কোলন-দ্বারা বিভাজিত ডিরেক্টরিগুলির তালিকা যা শেলটি cd কমান্ড দ্বারা নির্ধারিত গন্তব্য ডিরেক্টরিগুলির জন্য দেখায়। একটি নমুনা মান হল "।: ~: / Usr"।

কলাম

নির্বাচন তালিকা মুদ্রণ করার সময় টার্মিনাল প্রস্থ নির্ধারণ করতে নির্মিত বিল্ডিন ​​কমান্ড দ্বারা ব্যবহৃত। স্বয়ংক্রিয়ভাবে একটি SIGWINCH প্রাপ্তির উপর সেট।

COMPREPLY

একটি অ্যারে ভ্যারিয়েবল যা থেকে bash প্রোগ্রামেবল সমাপ্তির সুবিধা দ্বারা চালানো একটি শেল ফাংশন দ্বারা উত্পন্ন সম্ভাব্য সমাপ্তিটি পড়ে (নীচের প্রোগ্রামেবল সমাপ্তি দেখুন)।

FCEDIT

FC builtin কমান্ডের জন্য ডিফল্ট সম্পাদক।

FIGNORE

ফাইলের নামকরণ সমাপ্ত করার সময় উপনিবেশ দ্বারা পৃথক তালিকাটি উপেক্ষা করা হবে (নীচের READLINE দেখুন)। একটি ফাইলের নাম যার suffix FIGNORE এন্ট্রিগুলির একটিতে মিলিত হয় সেটি মিলিত ফাইলের নামগুলির তালিকা থেকে বাদ দেওয়া হয়েছে। একটি নমুনা মান হল ".o: ~"

GLOBIGNORE

পাথনাম সম্প্রসারণ দ্বারা ফাইলের নামগুলিকে উপেক্ষা করার জন্য নিদর্শনগুলির একটি কোলনযুক্ত পৃথক তালিকা। যদি একটি প্লেইননাম সম্প্রসারণের প্যাটার্ন দ্বারা মিলিত একটি ফাইলের নামটি GLOBIGNORE তে নিদর্শনগুলির সাথে মেলে তবে এটি মিলগুলির তালিকা থেকে সরিয়ে দেওয়া হয়।

HISTCONTROL

যদি ignorespace এর মান নির্ধারণ করা হয়, তবে একটি লাইন যা স্পেস ক্যারেক্টার দিয়ে শুরু হয় ইতিহাস তালিকাতে প্রবেশ করা হয় না। যদি ignoredups এর মান নির্ধারণ করা হয়, তবে শেষ ইতিহাস লাইনের সাথে মিলিত লাইনে প্রবেশ করা যাবে না। অগোছালোবর্গের একটি মান দুটি বিকল্পগুলিকে একত্রিত করে। যদি সেট না করা হয়, বা উপরে উল্লিখিত যেকোনো মান থেকে সেট করা হলে, পার্সার দ্বারা পড়া সমস্ত লাইনগুলি ইতিহাস তালিকায় সংরক্ষণ করা হয়, HISTIGNORE এর মান অনুযায়ী। এই পরিবর্তনশীল ফাংশন HISTIGNORE দ্বারা সরানো হয়। একটি মাল্টি-লাইন কম্পাউন্ড কমান্ডের দ্বিতীয় এবং পরবর্তী লাইনগুলি পরীক্ষিত হয় না, এবং HISTCONTROL এর মূল্য নির্বিশেষে ইতিহাসে যুক্ত করা হয়

HISTFILE

কমান্ড ইতিহাস সংরক্ষণ করা ফাইলের নাম (নিচে ইতিহাস দেখুন)। ডিফল্ট মান ~ / .bash_history যদি সেট না করা থাকে, একটি ইন্টারেক্টিভ শেল প্রর্দশিত হলে কমান্ড ইতিহাস সংরক্ষিত হয় না।

HISTFILESIZE

ইতিহাস ফাইলের মধ্যে থাকা সর্বাধিক সংখ্যক লাইন। এই পরিবর্তনশীল একটি মান নির্ধারিত হয়, ইতিহাস ফাইল truncated হয়, প্রয়োজন হলে, লাইন যে সংখ্যা বেশী না থাকে ডিফল্ট মান হল 500. একটি ইন্টারেক্টিভ শেল প্রর্দশিত হলে এটি লেখার পর এই ফাইলের আকারটি ছোট করা হয়।

HISTIGNORE

ইতিহাস তালিকাতে কোন কমান্ড লাইনগুলি সংরক্ষণ করা উচিত তা নির্ধারণের জন্য একটি কলাম দ্বারা পৃথক করা নিদর্শন তালিকা। প্রতিটি প্যাটার্ন লাইনের প্রারম্ভে সজ্জিত হয় এবং সম্পূর্ণ লাইনের সাথে মিলিত হওয়া উচিত (কোনও অন্তর্নিহিত ` * 'সংযুক্ত করা হয় না) HISTCONTROL দ্বারা নির্দিষ্ট চেকগুলি প্রয়োগ করার পরে প্রতিটি প্যাটার্নটি লাইনের বিরুদ্ধে পরীক্ষা করা হয়। স্বাভাবিক শেল প্যাটার্নের সাথে মিলে যাওয়া অক্ষরগুলি ছাড়াও, আগের ইতিহাস লাইনের সাথে মিল রয়েছে। একটি ব্যাকস্ল্যাশ ব্যবহার করে ` & '; একটি ম্যাচ চেষ্টা করার আগে ব্যাকস্ল্যাশ মুছে ফেলা হয় একটি মাল্টি লাইন কম্পাউন্ড কমান্ডের দ্বিতীয় এবং পরবর্তী লাইন পরীক্ষা করা হয় না, এবং HISTIGNORE এর মান নির্বিশেষে ইতিহাসে যোগ করা হয়।

HISTSIZE

কমান্ডের ইতিহাসে কমান্ডের সংখ্যাটি মনে রাখার জন্য (নীচের ইতিহাস দেখুন) ডিফল্ট মান হল 500।

হোম

বর্তমান ব্যবহারকারীর হোম ডিরেক্টরি; সিডি নির্মিত কমান্ডের জন্য ডিফল্ট আর্গুমেন্ট। টিল্ড প্রসারিত করার সময় এই পরিবর্তনশীল মান ব্যবহার করা হয়।

HOSTFILE

একটি ফাইলের নাম / etc / hosts হিসাবে একই বিন্যাসে থাকে যাতে শেলটি একটি হোস্টনাম সম্পূর্ণ করার সময় পড়া উচিত। সম্ভাব্য হোস্টনাম সমাপ্তির তালিকা পরিবর্তন করা যেতে পারে যখন শেল চলছে; পরের বার হোস্ট-নেম সংযোজন মান পরিবর্তনের পরে চেষ্টা করা হয়, bash বিদ্যমান ফাইলের নতুন ফাইলের বিষয়বস্তু যোগ করে। যদি HOSTFILE টি সেট করা হয়, তবে কোন মূল্য নেই, সম্ভাব্য হোস্টনাম সমাপ্তির তালিকা প্রাপ্ত করার জন্য / etc / hosts পড়ার জন্য bash এর প্রচেষ্টাগুলি। যখন হোস্টফিলটি সেট করা হয় না, হোস্টনাম তালিকাটি সাফ করা হয়।

IFS

অভ্যন্তরীণ ক্ষেত্র বিভাজক যা বর্ধনের পরে শব্দ বিভাজনার জন্য ব্যবহৃত হয় এবং লিখিত বিল্ডিন ​​কমান্ডের সাহায্যে লাইনগুলিকে বিভক্ত করে। ডিফল্ট মান হল `` <স্পেস> <ট্যাব> ''।

IGNOREEOF

একমাত্র ইনপুট হিসাবে একটি EOF চরিত্র পাওয়ার একটি ইন্টারেক্টিভ শেল এর কর্ম নিয়ন্ত্রণ করে। যদি সেট করা থাকে, মান হল পরপর EOF অক্ষরের সংখ্যা যা বিশ প্রস্থান করার আগে একটি ইনপুট লাইনের প্রথম অক্ষর হিসাবে টাইপ করা আবশ্যক। যদি ভ্যারিয়েবলটি বিদ্যমান থাকে কিন্তু একটি সাংখ্যিক মান থাকে না বা কোন মান নেই, তবে ডিফল্ট মান হল 10. যদি এটি না থাকে তবে EOF শেলের ইনপুটের শেষে অঙ্কিত করে।

INPUTRC

~ / .inputrc এর ডিফল্ট (ও নিচে READLINE দেখুন) রিডলাইন স্টার্টআপ ফাইলের জন্য ফাইলের নাম।

LANG- তে

কোনও বিভাগের জন্য লোকেল শ্রেণি নির্ধারণ করতে ব্যবহৃত হয় যা LC_ থেকে শুরু করে একটি ভ্যারিয়েবলের সাথে বিশেষভাবে নির্বাচিত নয়।

LC_ALL

এই পরিবর্তনশীল LANG এবং অন্য কোন LC_ ভেরিয়েবলের মানকে লোকেল শ্রেণী উল্লেখ করে।

LC_COLLATE

এই পরিবর্তনশীল পাথ নাম সম্প্রসারণ ফলাফল বাছাই যখন ব্যবহৃত সংঘর্ষের আদেশ নির্ধারণ করে, এবং পাথ এক্সপ্রেশন, সমমানের ক্লাস, এবং পাথ নাম সম্প্রসারণ এবং প্যাটার্ন মিলিং মধ্যে collating শৃঙ্খলা আচরণ নির্ধারণ করে।

LC_CTYPE

এই পরিবর্তনশীল অক্ষরের ব্যাখ্যা এবং পাথনাম সম্প্রসারণ এবং প্যাটার্ন মেমরির মধ্যে চরিত্র শ্রেণির আচরণ নির্ধারণ করে।

LC_MESSAGES

এই পরিবর্তনশীল $ $ দ্বারা পূর্বে ডাবল-উদ্ধৃত স্ট্রিং অনুবাদ করার জন্য ব্যবহার করা লোকেল নির্ধারণ করে।

LC_NUMERIC

এই পরিবর্তনশীল সংখ্যা সংখ্যা বিন্যাস জন্য ব্যবহৃত লোকাল শ্রেণী নির্ধারণ করে।

লাইন

প্রিন্টিং নির্বাচন তালিকাগুলির জন্য কলামের দৈর্ঘ্য নির্ধারণ করার জন্য বিল্টিন কমান্ড দ্বারা ব্যবহৃত। স্বয়ংক্রিয়ভাবে একটি SIGWINCH প্রাপ্তির উপর সেট।

মেল

যদি এই প্যারামিটারটি একটি ফাইলের নাম সেট করা থাকে এবং MAILPATH ভেরিয়েবলটি সেট না করা হয়, তাহলে নির্দিষ্ট ফাইলের মধ্যে মেইল ​​আগমনের ব্যবহারকারীকে বাশেবল জানাচ্ছে।

MAILCHECK

মেলের জন্য কত বার (সেকেন্ডে) bash চেকগুলি নির্দিষ্ট করে। ডিফল্ট 60 সেকেন্ড হয়। যখন মেলের চেক করার সময় হয় তখন শেলটি প্রাথমিক প্রম্পটটি প্রদর্শন করার আগে তাই। যদি এই ভ্যারিয়েবলটি সেট না করা হয়, বা এমন মান সেট করে যা কোনও শূন্যের সমান বা সমান না হয়, শেল মেইল ​​পরীক্ষা নিষ্ক্রিয় করে।

MAILPATH

মেইল চেক করার জন্য ফাইলের নামের একটি কোলন দ্বারা পৃথক তালিকা। কোন নির্দিষ্ট ফাইলে মেইলটি পাঠানো হলে মুদ্রণ করা বার্তাটি ``? 'এর মাধ্যমে বার্তা থেকে ফাইলের নামটি পৃথক করে নির্দিষ্ট করা হতে পারে। বার্তাটির পাঠ্যতে ব্যবহার করা হলে, $ _ বর্তমান মেলফিলের নামের প্রসারিত হয়। উদাহরণ:

মেইলপ্যাথ = '/ var / mail / bfox? "আপনার মেইল ​​আছে": ~ / shell-mail? "$ _ এর মেইল ​​আছে!"'

বাশ এই ভেরিয়েবলের জন্য একটি ডিফল্ট মান সরবরাহ করে, তবে এটি ব্যবহার করে ব্যবহারকারীর মেইল ​​ফাইলের অবস্থানটি নির্ভরশীল সিস্টেম (যেমন, / var / mail / $ USER )।

OPTERR

মান 1 এ সেট করা হলে, বিট getopts বিল্ডিন কমান্ড দ্বারা উত্পন্ন ত্রুটি বার্তা প্রদর্শন করে (নীচে SHELL BUILTIN COMMANDS দেখুন)। OPTERR শেলটি প্রবেশন করা হয় বা শেল স্ক্রিপ্ট চালানো প্রতিটি সময় 1 এ ইনিশিয়াল করা হয়।

পাথ

কমান্ডগুলির জন্য অনুসন্ধানের পাথ। এটি একটি কোলন-পৃথক ডিরেক্টরিগুলির তালিকা যা শেলগুলি কমান্ডগুলির জন্য দেখায় (নীচে COMMAND EXECUTION দেখুন)। ডিফল্ট পাথটি সিস্টেম-নির্ভর, এবং প্রশাসক দ্বারা সেট করা হয় যা bash ইনস্টল করে। একটি সাধারণ মান `` / usr / gnu / bin: / usr / local / bin: / usr / ucb: / bin: / usr / bin: ''।

POSIXLY_CORRECT

যদি এই ভ্যারিয়েবলটি পরিবেশে থাকে তবে bash শুরু হলে, শেল স্টেপআপ ফাইল পড়ার আগে posix মোডে প্রবেশ করে, যেমন - পোপসেস আহ্বান বিকল্প সরবরাহ করা হয়েছে। শেল চালানোর সময় সেট করা হলে, bash posix মোড সক্রিয় করে , যেমন- কমান্ড সেট-ও পোজিক্স কার্যকর করা হয়েছে।

PROMPT_COMMAND

যদি সেট করা থাকে, প্রতিটি প্রাথমিক প্রম্পট প্রেরণের পূর্বে মানটি কমান্ড হিসাবে কার্যকর করা হয়।

PS1

এই প্যারামিটারের মানটি প্রসারিত করা হয়েছে (নীচে PROMPTING দেখুন) এবং প্রাথমিক প্রম্পট স্ট্রিং হিসাবে ব্যবহৃত। ডিফল্ট মান `` \ s- \ v \ $ ''

PS2

এই প্যারামিটারের মান PS1 হিসাবে প্রসারিত করা হয় এবং দ্বিতীয় প্রম্পট স্ট্রিং হিসেবে ব্যবহৃত হয়। ডিফল্ট হল `` > ''।

পিএস 3

এই প্যারামিটারের মানটি নির্বাচন কমান্ডের প্রম্পট হিসাবে ব্যবহৃত হয় (উপরের SHELL GRAMMAR দেখুন)।

PS4

এই প্যারামিটারের মানটি PS1 হিসাবে প্রসারিত করা হয়েছে এবং প্রতিটি কমান্ডের আগে একটি এক্সিকিউশন ট্রেসের সময় বিস প্রদর্শিত হবে। PS4- এর প্রথম অক্ষরটি বহুবিধ বার্তায় অনুলিপি করা হয়, যেমন প্রয়োজনীয়তা একাধিক স্তরকে নির্দেশ করে। ডিফল্ট হল `` + ''।

সময় ফর্ম্যাট

এই প্যারামিটারের মানটি একটি ফরম্যাট স্ট্রিং হিসাবে ব্যবহৃত হয় যা নির্দিষ্ট সময়সীমার সাথে প্রিফিকৃত পাইপলাইনের সময় সংক্রান্ত তথ্য প্রদর্শন করা উচিত। % অক্ষর একটি অব্যাহতির ক্রম প্রবর্তন করা হয় যে একটি সময় মান বা অন্যান্য তথ্য প্রসারিত করা হয় অব্যাহতির অনুক্রম এবং তাদের অর্থ নিম্নরূপ; ধনুর্বন্ধনী ঐচ্ছিক অংশকে নির্দেশ করে।

%%

একটি আক্ষরিক %

% [ পি ] [এল] আর

সেকেন্ডের মধ্যে elapsed সময়।

% [ পি ] [এল] ইউ

ব্যবহারকারী মোডে ব্যয় করা CPU সেকেন্ডের সংখ্যা।

% [ পি ] [এল] এস

সিস্টেম মোডে থাকা CPU সেকেন্ডের সংখ্যা।

% পি

CPU শতাংশ, হিসাবে গণনা করা হয়েছে (% U +% S) /% R

ঐচ্ছিক হল একটি অঙ্ক যা স্পষ্টতা নির্দিষ্ট করে, দশমিক বিন্দুর পরে ভগ্নাংশ সংখ্যা সংখ্যা। 0 এর মান একটি আউটপুট হতে দশমিক বিন্দু বা ভগ্নাংশ কারণ। দশমিক বিন্দুর পরে তিনটি স্থানে নির্দিষ্ট করা যেতে পারে; 3 এর চেয়ে বড় পি এর মান 3 এ পরিবর্তিত হয়। যদি পি নির্দিষ্ট করা হয় না, তাহলে মান 3 ব্যবহার করা হয়।

ঐচ্ছিক আমি ফর্ম এমএম এম এস এর মিনিটের সহ আরও একটি বিন্যাস, নির্দিষ্ট করে FF s পি এর মান ভগ্নাংশ অন্তর্ভুক্ত করা হয় কিনা তা নির্ধারণ করে।

যদি এই ভেরিয়েবলটি সেট না হয়, তবে এটি $ $ '\ nreal \ t% 3lR \ nuser \ t% 3lU \ nsys% 3lS' এর মান হিসাবে কাজ করে। মানটি নাল হলে, কোনও সময়জ্ঞান তথ্য প্রদর্শন করা হয় না। ফরম্যাট স্ট্রিং প্রদর্শিত হয় যখন একটি trailing নতুন লাইন যোগ করা হয়।

TMOUT

যদি শূন্যের চেয়ে বড় মান সেট করা থাকে, তবে readout buildin এর জন্য TMOUT ডিফল্ট সময়সীমার হিসাবে গণ্য করা হয়। একটি টার্মিনাল থেকে ইনপুট আসছে যখন নির্বাচন করুন TMOUT সেকেন্ড পরে ইনপুট না আসে তাহলে নির্বাচন কমান্ড বন্ধ। একটি ইন্টারেক্টিভ শেল ইন, প্রাথমিক প্রম্পট প্রবর্তন করার পরে ইনপুট অপেক্ষা করার জন্য মানটি সেকেন্ডের সংখ্যা হিসেবে ব্যাখ্যা করা হয়। যদি ইনপুট না আসে তবে সেই সংখ্যাগুলির জন্য অপেক্ষা করার পরে বাশ শেষ হয়ে যায়

auto_resume

এই ভেরিয়েবল কিভাবে শেল ব্যবহারকারী এবং কাজ নিয়ন্ত্রণ সঙ্গে মিথস্ক্রিয়া নিয়ন্ত্রণ। যদি এই ভেরিয়েবলটি সেট করা থাকে, তবে কোন একটি নির্দিষ্ট বন্ধ কর্মের পুনরাবৃত্তি জন্য প্রার্থীদের হিসাবে পুনঃনির্দেশিত ছাড়া একক শব্দ সহজ কমান্ডগুলি ব্যবহার করা হয়। কোন দ্বিমত নেই; টাইপ করা টাইপের সাথে যদি একাধিক চাকরী শুরু হয় তবে সবচেয়ে সম্প্রতি যে অ্যাক্সেস করা হয়েছে তা নির্বাচন করা হয়েছে। এটি বন্ধ করার কাজটি বন্ধ করার কাজটির নাম , এই প্রেক্ষাপটে, এটি শুরু করতে ব্যবহৃত কমান্ড লাইন। মান সঠিক সেট করা হলে, সরবরাহকৃত স্ট্রিং ঠিক একটি বন্ধ কাজের নামের সাথে মেলে আবশ্যক; যদি substring- এ নির্ধারিত হয়, তবে স্ট্রিং সরবরাহের প্রয়োজন একটি বন্ধ কাজের নাম পরিবর্তনের সাথে মেলে। Substring মান % অনুরূপ কার্যকারিতা উপলব্ধ ? চাকুরীর সনাক্তকারী (নীচের JOB নিয়ন্ত্রণ দেখুন) যদি অন্য কোনও মান সেট থাকে, সরবরাহকৃত স্ট্রিংটি বন্ধ হওয়া কাজের নামটির একটি উপসর্গ হওয়া আবশ্যক; এই % কাজের সনাক্তকারী অনুরূপ কার্যকারিতা উপলব্ধ করা হয়।

histchars

দুই বা তিনটি অক্ষর যা ইতিহাস সম্প্রসারণ এবং টোকেনাইজেশান নিয়ন্ত্রণ করে (নীচের ইতিহাস এক্সপ্রেশন দেখুন) প্রথম চরিত্র হল ইতিহাস সম্প্রসারণ চরিত্র, একটি চরিত্র যা ইতিহাস সম্প্রসারণের সূচনা করে, সাধারণত ` ! '। দ্বিতীয় অক্ষর হল দ্রুত প্রতিস্থাপন চরিত্র, যা পূর্ববর্তী কমান্ডটি পুনরায় চালু করার জন্য শর্ট-সাউন্ড হিসাবে ব্যবহৃত হয়, কমান্ডের অন্য একটি স্ট্রিংকে প্রতিস্থাপন করে। ডিফল্ট হল ` ^ ' ঐচ্ছিক তৃতীয় চরিত্র চরিত্রটি নির্দেশ করে যে লাইনের অবশিষ্টাংশ একটি মন্তব্য যখন একটি শব্দ প্রথম অক্ষর হিসাবে পাওয়া যায়, সাধারণত ` # '। ইতিহাস মন্তব্য চরিত্রটি লাইনের অবশিষ্ট শব্দগুলির জন্য ইতিহাসের প্রতিস্থাপিত হতে পারে না। এটি আনুষ্ঠানিকভাবে শেল পার্সার একটি লাইন হিসাবে বাকি লাইন আচরণ কারণ না।

অ্যারেগুলির

ব্যাশ এক-মাত্রিক অ্যারে ভেরিয়েবল প্রদান করে। কোন পরিবর্তনশীল একটি অ্যারের হিসাবে ব্যবহার করা যেতে পারে; ঘোষিত অন্তর্নির্মিত স্পষ্টভাবে একটি অ্যারের ঘোষণা করা হবে। কোন অ্যারের আকারের কোনও সর্বাধিক সীমা নেই, এবং যেকোন প্রয়োজন যাতে সদস্যবৃদ্ধি করা হয় বা অনুকূলিত করা হয় অ্যারেগুলি পূর্ণসংখ্যার ব্যবহার করে ইন্ডেক্স করা হয় এবং শূন্য ভিত্তিক।

একটি অ্যারে স্বয়ংক্রিয়ভাবে তৈরি করা হয় যদি কোন পরিবর্তনশীল সিনট্যাক্স নাম [ সাবস্ক্রিপ্ট ] = মান ব্যবহার করার জন্য নির্ধারিত হয়সাবস্ক্রিপ্ট একটি গাণিতিক অভিব্যক্তি হিসাবে গণ্য করা হয় যা শূন্যের চেয়ে বড় বা সমান শূণ্যের মূল্যায়ন করতে হবে। স্পষ্টভাবে একটি অ্যারের ঘোষণা, declare -a নাম ব্যবহার করুন (নীচে SHELL BUILTIN কম্যান্ডস দেখুন)। ঘোষণা - একটি নাম [ সাবস্ক্রিপ্ট ] এছাড়াও গৃহীত হয়; সাবস্ক্রিপ্ট উপেক্ষা করা হয়। ঘোষণা এবং পাঠযোগ্য বিল্ডিন ​​ব্যবহার করে অ্যারে ভেরিয়েবলের জন্য বৈশিষ্ট্যাবলী নির্দিষ্ট করা যেতে পারে। প্রতিটি অ্যাট্রিবিউট একটি অ্যারের সমস্ত সদস্যদের ক্ষেত্রে প্রযোজ্য।

অ্যারেগুলি ফর্ম নাম = ( মান 1 ... মান n ) এর যৌগিক অ্যাসাইনমেন্ট ব্যবহার করার জন্য নির্ধারিত হয়, যেখানে প্রতিটি মানটি ফরমের [ সাবস্ক্রিপ্ট ] = স্ট্রিং । শুধুমাত্র স্ট্রিং প্রয়োজন। যদি ঐচ্ছিক বন্ধনী এবং সাবস্ক্রিপ্ট সরবরাহ করা হয়, তাহলে সূচীটি নিযুক্ত করা হয়; অন্যথায় বিন্যাসের সূচিপত্রের সূচিপত্র হল স্টেটমেন্ট দ্বারা নির্ধারিত শেষ সূচকের প্লাস ওয়ান। সূচক শূন্য এ শুরু হয় এই সিনট্যাক্সটি ঘোষিত বিল্ডিন ​​দ্বারাও গৃহীত হয়। ব্যক্তিগত অ্যারে উপাদানের নাম ব্যবহার করা যেতে পারে [ সাবস্ক্রিপ্ট ] = মান সিনট্যাক্স উপরে চালু।

অনির্দিষ্ট সেট করা অ্যারে ধ্বংস করার জন্য ব্যবহৃত হয়। নাম সন্নিবেশ করা [ সাবস্ক্রিপ্ট ] ইনডেক্স সাবস্ক্রিপ্ট এ অ্যারে উপাদান ধ্বংস। নামটি অনির্দিষ্ট করুন , যেখানে নামটি একটি অ্যারে, অথবা নামটি সন্নিবেশ করা হয় [ সাবস্ক্রিপ্ট ], যেখানে সাবস্ক্রিপ্ট * বা @ , সম্পূর্ণ অ্যারেটি সরিয়ে ফেলে।

ঘোষণা , স্থানীয় , এবং readonly বিল্ডস প্রতিটি একটি AA- একটি বিকল্প গ্রহণ একটি অ্যারের নির্দিষ্ট করতে। পড়ার বিল্ডিন ​​a -a বিকল্প গ্রহণ করে যা মানক ইনপুট থেকে একটি অ্যারে থেকে পড়া শব্দগুলির একটি তালিকা নির্ধারণ করে। সেট এবং declines বিল্ডিন ​​এমন একটি উপায়ে অ্যারে মান প্রদর্শন করে যা তাদেরকে নিয়োগ হিসাবে পুনরায় ব্যবহার করতে দেয়।

সম্প্রসারণ

এটি শব্দের মধ্যে ভাগ করা হয়েছে পরে কমান্ড লাইনে এক্সপ্রেশনটি সঞ্চালিত হয়। ব্র্যান্ড এক্সপ্রেশন , টিল্ড এক্সপ্রেশন , প্যারামিটার এবং ভেরিয়েবল এক্সটেনশন , কমান্ড প্রতিস্থাপন , গাণিতিক সম্প্রসারণ , শব্দ বিভাজন , এবং পাথনাম সম্প্রসারণ : সঞ্চালিত প্রসারণের সাত ধরনের আছে।

সম্প্রসারণের আদেশ হল: ব্রাস এক্সটেনশন, টিল্ড এক্সপ্রেশন, প্যারামিটার, ভেরিয়েবল এবং আংশিক এক্সটেনশন এবং কমান্ড প্রতিস্থাপন (বাম থেকে ডান ফর্মে করা), শব্দ বিভাজন, এবং পাথনাম সম্প্রসারণ।

এটি সমর্থন করতে পারে এমন সিস্টেমগুলিতে, উপলব্ধ একটি অতিরিক্ত বিস্তার আছে: প্রক্রিয়া প্রতিস্থাপন

বন্ধনী বিস্তার

বন্ধনী বিস্তার একটি প্রক্রিয়া যার দ্বারা অবাধ স্ট্রিং তৈরি করা যেতে পারে। এই প্রক্রিয়াটি পাথ নাম সম্প্রসারণের অনুরূপ, কিন্তু উত্পন্ন ফাইলের নাম অস্তিত্বের প্রয়োজন নেই। প্যাটার্নস হতে ব্রেস বর্ধিত একটি ঐচ্ছিক preamble আকারে নিতে, পরপর কমা দ্বারা পৃথকীঙ্গ স্ট্রিং একটি ধনুর্বন্ধনী একটি জোড়া মধ্যে, একটি ঐচ্ছিক পোস্টপরিসর দ্বারা অনুসরণ প্রস্তাবনাটি প্রত্যেকটি স্ট্রিংয়ের মধ্যে প্রান্তিককরণের মধ্যে রয়েছে, এবং স্ট্রিপটিটি পরে প্রতিটি স্ট্রিংকে সংযুক্ত করা হয়, বাম থেকে ডানে প্রসারিত করা।

বন্ধনী বিস্তার করা হতে পারে। প্রতিটি বর্ধিত স্ট্রিং ফলাফল সাজানো হয় না; বামে ডান অর্ডার সংরক্ষণ করা হয়। উদাহরণস্বরূপ, একটি { d, c, b } e 'ade ace abe' এ প্রসারিত হয়।

বন্ধনী বিস্তার অন্য বিস্তার আগে সঞ্চালিত হয়, এবং অন্য বিস্তার অন্যান্য বিশেষত ফলাফল অক্ষত রাখা হয়। এটি কঠোরভাবে পাঠ্যাংশ। ব্যাশগুলি সম্প্রচারের প্রেক্ষাপটে বা অনুভূতিগুলির মধ্যে পাঠ্যের কোনও সিনট্যাক্টিক ব্যাখ্যা প্রয়োগ করে না।

এই নির্মাণটি সাধারণত শর্টহ্যান্ড হিসাবে ব্যবহৃত হয় যখন স্ট্রিংগুলির সাধারণ উপসর্গ তৈরি করা হয় উপরের উদাহরণের তুলনায় বেশি:

mkdir / usr / local / src / bash / {পুরানো, নতুন, ডিস্ট, বাগ}

অথবা

chown root /usr/{ucb/{ex,edit},lib/{ex?.?*********}}

বন্ধনী বিস্তার শ এর ঐতিহাসিক সংস্করণ সঙ্গে সামান্য অসঙ্গতি প্রবর্তন। শব্দের অংশ হিসাবে উপস্থিত হওয়া এবং আউটপুটের মধ্যে তাদের সংরক্ষণ করে বিশেষভাবে যখন খোলা বা বন্ধনী ব্যবহার করে না। ব্যাশ বর্ধনের ফলে বাশে শব্দ থেকে ধনুর্বন্ধনী মুছে ফেলে। উদাহরণস্বরূপ, ফাইল {1,2} হিসাবে sh এ প্রবেশ করা একটি শব্দ আউটপুটে অনুরূপ প্রদর্শিত হয়। একই শব্দটি আউটপুট হিসাবে file1 file2 দ্বারা bash দ্বারা বিস্তার পরে। যদি sh- এর সাথে কঠোর সামঞ্জস্যের প্রয়োজন হয়, + B বিকল্পটি দিয়ে শুরু করুন বা সেট কমান্ডে + B বিকল্পের সাথে বক্র প্রসারিত করুন (নীচে SHELL BUILTIN COMMANDS দেখুন)।

টিল্ড প্রসারিত

যদি একটি শব্দটি অসম্পূর্ণ টিল্ড অক্ষর (` ~ ') দিয়ে শুরু হয় তবে প্রথম অক্ষরযুক্ত স্ল্যাশের (অথবা সমস্ত অক্ষর, যদি কোন অখণ্ডিত স্ল্যাশ না থাকে) পূর্ববর্তী সকল অক্ষরগুলি একটি টিল্ড-প্রিফিক্স হিসাবে বিবেচিত হয়। টিল্ড-প্রিফিক্সের কোনও অক্ষর উদ্ধৃত করা হলে, টিল্ড-এর পর টিল্ড-প্রিফিক্সের অক্ষর একটি সম্ভাব্য লগইন নাম হিসাবে গণ্য করা হয়। এই লগইন নামটি যদি নাল স্ট্রিং হয়, তাহলে টিল্ডটি শেল প্যারামিটারের হোমের সাথে প্রতিস্থাপিত হবে HOME যদি হোমটি সেট না থাকে, তবে শেল চালানোর জন্য ব্যবহারকারীর হোম ডিরেক্টরিটি পরিবর্তিত হয়। অন্যথায়, টিল্ড-প্রিফিক্সটি নির্দিষ্ট করা লগইন নামের সাথে যুক্ত হোম ডিরেক্টরিের সাথে প্রতিস্থাপিত হয়।

যদি টিল্ড-প্রিফিক্স একটি `~ 'হয়, শেল ভেরিয়েবল PWD এর মান টিল্ড-প্রিফিক্সের পরিবর্তে। যদি টিল্ড-প্রিফিক্স একটি `~ - 'হয়, শেল পরিবর্তনশীল OLDPWD এর মান, সেট করা হলে, প্রতিস্থাপিত হয়। যদি টিল্ড-প্রিফিক্সের টিল্ড-এর পর অক্ষরগুলি একটি সংখ্যা N- র দ্বারা গঠিত হয়, তবে বিকল্পটি '+' বা '-' দ্বারা প্রিফিক্ড করা হয়, টিল্ড-প্রিফিক্সটি ডিরেক্টরির স্ট্যাকের সাথে সংশ্লিষ্ট উপাদান দ্বারা প্রতিস্থাপিত হয়, যেমনটি প্রদর্শিত হবে একটি আর্গুমেন্ট হিসাবে tilde-prefix সঙ্গে dirs নির্মিত dirs দ্বারা নির্মিত। যদি টিল্ড-প্রিফিক্সের টিল্ডের অনুসরণকারী অক্ষরগুলি একটি প্রারম্ভিক `+ 'বা` -' ছাড়া একটি সংখ্যা গঠিত হয়, তাহলে `+ 'অনুমান করা হয়।

লগইন নামটি অবৈধ হলে, বা টিল্ডা সম্প্রসারণ ব্যর্থ হলে শব্দটি অপরিবর্তিত রয়েছে।

প্রতিটি ভেরিয়েবল নিয়োগ নিখুঁত টিল্ড-উপসর্গগুলির জন্য অবিলম্বে অনুসরণ করার জন্য পরীক্ষা করা হয় : অথবা = এই ক্ষেত্রে, টিল্ডা সম্প্রসারণ এছাড়াও সঞ্চালিত হয়। ফলস্বরূপ, কেউ PATH , MAILPATH এবং CDPATH- এর কার্যভারে টিল্ডস সহ ফাইলের নাম ব্যবহার করতে পারে, এবং শেলটি প্রসারিত মান নির্দিষ্ট করে।

পরামিতি বিস্তার

` $ 'অক্ষর প্যারামিটার সম্প্রসারণ, কমান্ড প্রতিস্থাপন, বা গাণিতিক সম্প্রসারণকে উপস্থাপিত করে। প্যারামিটারের নাম বা প্রতীক প্রসারিত করা বন্ধনীগুলিতে আবদ্ধ হতে পারে, যা ঐচ্ছিক কিন্তু ভেরিয়েবলকে অক্ষরের থেকে দ্রুত বর্ধিত করার জন্য পরিবেশন করা হয় যা এর নামটির অংশ হিসাবে ব্যাখ্যা করা যেতে পারে।

যখন বন্ধনী ব্যবহার করা হয়, তখন একটি শেষ স্লাইডিং ব্রেস হল প্রথমটি ` } 'একটি ব্যাকস্ল্যাশ বা একটি উদ্ধৃত স্ট্রিংয়ের মধ্যে পালটে যায় না, এবং একটি এমবেডেড অ্যার্থম্যাটিক সম্প্রসারণ, কমান্ড প্রতিস্থাপন বা প্যারামের এক্সটেনশন এর মধ্যে নয়।

পরামিতি মান প্রতিস্থাপিত হয়। প্যারামিটারটি একটি একাধিক অঙ্কের সাথে একটি অবস্থানগত প্যারামিটার যখন বন্ধনীর প্রয়োজন হয়, অথবা যখন প্যারামিটারটি একটি চরিত্র দ্বারা অনুসরণ করা হয় যা তার নামের অংশ হিসাবে ব্যাখ্যা করা হয় না।

নীচের প্রতিটি ক্ষেত্রে, শব্দটি টিলডির বিস্তার, প্যারামিটার সম্প্রসারণ, কমান্ড প্রতিস্থাপন এবং আংশিক সম্প্রসারণের বিষয়। যখন সাবস্ট্রিং এক্সটেনশন সম্পাদন করা হয় না, একটি প্যারামিটারের জন্য বিস পরীক্ষা যা সেট করা না হয় বা নাল; কোলন বাদ দেওয়ার ফলে শুধুমাত্র একটি প্যারামিটারের জন্য পরীক্ষা করা হয় যা সেট করা না হয়।

ডিফল্ট মান ব্যবহার করুন যদি প্যারামিটারটি সেট করা না হয় বা নাল হয়, তবে শব্দটি সম্প্রসারণ করা হয়। অন্যথায়, পরামিতি মান প্রতিস্থাপিত হয়।

ডিফল্ট মান নির্ধারণ করুন যদি প্যারামিটারটি সেট করা না হয় বা নাল হয়, তাহলে শব্দটির সম্প্রসারণকে প্যারামিটারে ভাগ করা হবেপরামিতি মান তারপর প্রতিস্থাপিত হয়। এই উপায়ে অবস্থানগত প্যারামিটার এবং বিশেষ পরামিতিগুলি বরাদ্দ করা যাবে না।

নল বা আনসেট করুন প্রদর্শন ত্রুটি যদি প্যারামিটারটি বাতিল বা সেট না করা হয়, তবে শব্দটির সম্প্রসারণ (বা শব্দটি যে বার্তাটি উপস্থিত না থাকলে বার্তা ) মান ত্রুটি এবং শেলে লিখিত হয়, যদি এটি ইন্টারেক্টিভ না হয়, প্রস্থান করে অন্যথায়, পরামিতি মান প্রতিস্থাপিত হয়।

বিকল্প মান ব্যবহার করুন যদি প্যারামিটারটি বাতিল বা সেট না করা হয়, কিছুই প্রতিস্থাপিত হয় না, অন্যথায় শব্দটি সম্প্রসারণ করা হয়।

IFS- র বিশেষ ক্যারেক্টারের প্রথম অক্ষর দ্বারা বিভক্ত ভেরিয়েবলের নামের প্রসারিত করুন, যার নাম প্রিফিক্স দিয়ে শুরু হয়।

প্যারামিটারের মানের অক্ষরের দৈর্ঘ্য প্রতিস্থাপিত হয়। যদি প্যারামিটারটি * বা @ থাকে তবে প্রতিস্থাপিত মানটি অবস্থানগত প্যারামিটারের সংখ্যা। যদি প্যারামিটার একটি অ্যারে নাম * বা @ দ্বারা সাবস্ক্রাইব করা হয়, তবে পরিবর্তিত মান অ্যারের উপাদানগুলির সংখ্যা।

শব্দটি একটি প্যাটার্ন তৈরি করতে প্রসারিত হয় যেমন pathname সম্প্রসারণ। যদি প্যাটার্নটি প্যারামিটারের মূল্যের প্রারম্ভে মিলিত হয়, তাহলে সম্প্রসারণের ফলাফলটি প্যারামিটারের বর্ধিত মান হল সংক্ষিপ্ততম মাপের প্যাটার্ন (`` # '' ক্ষেত্রে) বা দীর্ঘতম মাপের প্যাটার্ন (`` ## ' 'কেস) মুছে ফেলা হয়েছে। যদি প্যারামিটার @ বা * হয় , প্যাটার্ন অপসারণ অপারেশনটি প্রতিটি অবস্থানীয় প্যারামিটারে পরিবর্তিত হয়, এবং সম্প্রতি ফলাফলটি হল ফলাফল। যদি প্যারামিটার একটি অ্যারে পরিবর্তনশীল @ বা * এর সাথে সাবস্ক্রাইব করা হয়, তবে প্যাটার্ন অপসারণ অপারেশনটি একেবারে অ্যারের অ্যালার্ট সদস্যকে প্রয়োগ করা হয় এবং সম্প্রতি ফলাফলটি হল ফলাফল।

শব্দটি একটি প্যাটার্ন তৈরি করতে প্রসারিত হয় যেমন pathname সম্প্রসারণ। যদি প্যাটার্নটি প্যারামিটার এক্সটেন্ডেড মানের একটি প্রান্তিক অংশের সাথে মিলিত হয়, তবে এক্সটেনশন এর ফলাফলটি প্যারামিটারের বর্ধিত মান হয় যার সাথে কমপক্ষে মেইলিং প্যাটার্ন (`` % '' কেস) বা দীর্ঘতম মাপের প্যাটার্ন (`` % % '' কেস) মোছা হয়েছে। যদি প্যারামিটার @ বা * হয় , প্যাটার্ন অপসারণ অপারেশনটি প্রতিটি অবস্থানীয় প্যারামিটারে পরিবর্তিত হয়, এবং সম্প্রতি ফলাফলটি হল ফলাফল। যদি প্যারামিটার একটি অ্যারে পরিবর্তনশীল @ বা * এর সাথে সাবস্ক্রাইব করা হয়, তবে প্যাটার্ন অপসারণ অপারেশনটি একেবারে অ্যারের অ্যালার্ট সদস্যকে প্রয়োগ করা হয় এবং সম্প্রতি ফলাফলটি হল ফলাফল।

প্যাটার্নন সম্প্রসারণের মতই একটি প্যাটার্ন তৈরি করতে প্যাটার্ন প্রসারিত করা হয়। প্যারামিটারটি প্রসারিত করা হয়েছে এবং এর মানটির বিপরীতে প্যাটার্নের দীর্ঘতম ম্যাচটি স্ট্রিং দ্বারা প্রতিস্থাপিত হয়। প্রথম ফর্ম, শুধুমাত্র প্রথম ম্যাচ প্রতিস্থাপিত হয়। দ্বিতীয় ফর্মে স্ট্রিং দ্বারা প্রতিস্থাপিত করার জন্য প্যাটার্নের সমস্ত মিল রয়েছে। যদি প্যাটার্নটি # দিয়ে শুরু হয় তবে এটি প্যারামিটারের প্রসারিত মানের প্রারম্ভে মিলিত হবে। যদি প্যাটার্নটি % দিয়ে শুরু হয়, তাহলে এটি প্যারামিটারের প্রসারিত মানের শেষে মিলবে। যদি স্ট্রিং নাল হয়, প্যাটার্নের মিল মুছে ফেলা হয় এবং / নিম্নলিখিত প্যাটার্ন বাদ দেওয়া হতে পারে। যদি প্যারামিটারটি @ বা * হয় , প্রতিস্থাপনের অপারেশনটি প্রতিটি অবস্থানীয় প্যারামিটারে পরিবর্তিত হয়, এবং সম্প্রতি ফলাফলটি হল ফলাফল। যদি প্যারামিটার একটি অ্যারে পরিবর্তনশীল @ বা * এর সাথে সাবস্ক্রাইব করা হয়, প্রতিস্থাপনের অপারেশন পরিবর্তে অ্যারের প্রতিটি সদস্যের জন্য প্রয়োগ করা হয়, এবং সম্প্রসারণ ফলাফল হল তালিকা।

কমান্ড প্রতিস্থাপন

কমান্ডের পরিবর্তে কমান্ডের আউটপুট কমান্ডের নাম পরিবর্তন করতে পারবেন। দুটি ফর্ম আছে:

$ ( কমান্ড )

অথবা

` কমান্ড`

ব্যাশ কমান্ড চালানোর মাধ্যমে কমান্ড প্রতিস্থাপন এবং কমান্ডের প্রমিত আউটপুটকে প্রতিস্থাপনের মাধ্যমে এক্সটেনশনটি সঞ্চালন করে, কোনও পশ্চাদপট newlines মোছা হয়েছে। এম্বেডকৃত নতুন লাইন মুছে ফেলা হয় না, তবে শব্দ বিভাজনে তাদের সরানো হতে পারে। কমান্ড প্রতিস্থাপন $ (বিড়াল ফাইল ) সমতুল্য কিন্তু দ্রুত $ (< ফাইল ) দ্বারা প্রতিস্থাপিত হতে পারে।

যখন পুরানো-শৈলী ব্যাক্কোটে রূপান্তর ব্যবহার করা হয় তখন ব্যাকস্ল্যাশ তার আক্ষরিক অর্থকে ধরে রাখে যখন $ , ` , বা \ ' দ্বারা অনুসরণ করা হয় একটি ব্যাকস্ল্যাশ দ্বারা পূর্ববর্তী প্রথম ব্যাককোটটি কমান্ড প্রতিস্থাপন বন্ধ করে দেয় $ ( কমান্ড ) ফর্ম ব্যবহার করার সময়, বন্ধনীগুলির মধ্যে থাকা সমস্ত অক্ষরটি কমান্ডটি তৈরি করে; কেউ বিশেষভাবে চিকিত্সা করা হয়।

কমান্ডের পরিবর্তে নেস্টেড হতে পারে। Backquoted ফর্ম ব্যবহার করার সময় নেস্টে, ব্যাকস্ল্যাশের সাথে ভিতরের ব্যাককোটগুলি পালাও।

প্রতিস্থাপন দ্বিগুণ উদ্ধৃতিতে প্রদর্শিত হলে, শব্দ বিভাজন এবং পাথনাম সম্প্রসারণ ফলাফলগুলিতে সঞ্চালিত হয় না।

আংশিক বিস্তার

অ্যারিথম্যাটিক সম্প্রসারণ একটি গাণিতিক অভিব্যক্তি এবং ফলাফল এর প্রতিস্থাপন মূল্যায়ন করতে পারবেন। গাণিতিক বিস্তার জন্য বিন্যাস হল:

$ (( অভিব্যক্তি ))

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

মূল্যায়নটি এরিথিটিক মূল্যায়ন নীচে তালিকাভুক্ত নিয়ম অনুযায়ী সঞ্চালিত হয় যদি এক্সপ্রেশন অকার্যকর হয়, তাহলে একটি বার্তা ব্যর্থতা নির্দেশ করে ছাপানো মুদ্রণ করে এবং কোন প্রতিস্থাপিত হয় না।

প্রক্রিয়া প্রতিস্থাপন

নামক পাইপ ( FIFO ) বা খোলা ফাইলগুলির নামকরণের / dev / fd পদ্ধতি সমর্থনকারী সিস্টেমে প্রক্রিয়া প্রতিস্থাপন সমর্থিত। এটি <( তালিকা ) বা > ( তালিকা ) এর ফর্ম নেয়। প্রক্রিয়া তালিকাটি তার ইনপুট বা আউটপুট একটি FIFO বা / dev / fd ফাইলের সাথে সংযুক্ত করা হয়। এই ফাইলের নামটি বর্তমান কমান্ডের একটি আর্গুমেন্ট হিসাবে প্রবাহিত হয় যা সম্প্রসারণের ফলাফল হিসাবে দেখা যায়। যদি > ( তালিকা ) ফর্ম ব্যবহার করা হয়, তাহলে ফাইলটি লিস্টের জন্য ইনপুট প্রদান করবে। যদি <( তালিকা ) ফরমটি ব্যবহার করা হয়, তাহলে তালিকাটির আউটপুট পাওয়ার জন্য একটি আর্গুমেন্ট হিসাবে প্রেরিত ফাইল পড়া উচিত।

যখন পাওয়া যায়, প্রক্রিয়া প্রতিস্থাপন প্যারামিটার এবং পরিবর্তনশীল বিস্তার, কমান্ড প্রতিস্থাপন এবং আংশিক সম্প্রসারণের সাথে একযোগে সঞ্চালিত হয়।

শব্দ বিভাজক

শেলটি প্যারামিটার এক্সটেনশন, কমান্ড প্রতিস্থাপন, এবং গাণিতিক সম্প্রসারণের ফলাফল স্ক্যান করে যা শব্দ বিভাজনের জন্য ডবল কোটগুলির মধ্যে ঘটেনি।

শেল আইএএফএসের প্রতিটি চরিত্রকে একটি ডিলেমাইটার হিসাবে ব্যবহার করে, এবং এই অক্ষরগুলিতে শব্দগুলিতে অন্যান্য সম্প্রসারণের ফলাফলগুলি বিভাজিত করে। যদি আইএফএস সেট না থাকে, অথবা এর মানটি ঠিক <স্পেস> <ট্যাব> <নতুন লাইন> , ডিফল্ট হলে, আইএফএস অক্ষরের কোন অনুক্রম শব্দকে বিভক্ত করে। যদি আইএফএসের ডিফল্ট ব্যতীত অন্য একটি মান থাকে, তবে হোয়াইটস্পেস অক্ষরের IFS (একটি আইএফএস হোয়াইটস্পেস চরিত্র) এর মান যতদিন চলবে, ততক্ষণ পর্যন্ত শব্দটির প্রারম্ভ এবং শেষ সময়ে সাদা স্পেস অক্ষরের স্থান এবং ট্যাবের ক্রমগুলি উপেক্ষা করা হয়। আইএফএস যে কোন চরিত্রটি আইএফএস হোয়াইটস্পেস নয়, কোনও পাশে আইএফএস হোয়াইট স্পেস অক্ষরের সাথে, একটি ক্ষেত্রকে সীমাবদ্ধ করে। আইএফএস হোয়াইটস্পেস অক্ষরের একটি অনুক্রমকে একটি বিভাজক হিসেবে বিবেচনা করা হয়। IFS- র মান যদি নাল হয়, কোন শব্দ বিভাজন ঘটে না।

স্পষ্ট নল আর্গুমেন্ট ( "" বা "' ) রাখা হয়। Unquoted অন্তর্নির্মিত নাল আর্গুমেন্ট, কোন মান আছে প্যারামিটার সম্প্রসারণ ফলে, সরানো হয় যদি কোন মানের কোন প্যারামিটারটি দ্বিগুণ উদ্ধৃতির মধ্যে বিস্তৃত হয়, একটি নল যুক্তি ফলাফল এবং বজায় রাখা হয়।

উল্লেখ্য যে যদি কোন সম্প্রসারণ ঘটে না, তাহলে কোনও বিভাজন প্রদর্শিত হয় না।

প্যাথনাম বিস্তার

শব্দ বিভক্ত করার পরে, যদি না -f বিকল্পটি নির্ধারণ করা হয়, তাহলে অক্ষর * জন্য প্রতিটি শব্দ স্ক্যান করে ? , এবং [ । যদি এইগুলির মধ্যে একটি অক্ষর আবির্ভূত হয়, তবে শব্দটিকে একটি প্যাটার্ন হিসেবে গণ্য করা হয় এবং প্যাটার্নের সাথে মেলে এমন ফাইলের নামগুলির একটি বর্ণানুক্রমে সাজানো তালিকা দিয়ে প্রতিস্থাপিত হয়। যদি কোনো মিলে যাওয়া ফাইলের নাম পাওয়া যায় না এবং শেল বিকল্পটি nullglob অক্ষম থাকে তবে শব্দটি অপরিবর্তিত থাকবে। যদি nullglob বিকল্পটি সেট করা হয়, এবং কোন মিল পাওয়া যায় না, শব্দটি সরানো হয় শেল বিকল্প nocaseglob সক্ষম করা হয়, যদি, বর্ণানুক্রমিক অক্ষর ক্ষেত্রে বিবেচনা ছাড়া সঞ্চালিত হয়। যখন একটি প্যাটার্ন পাথ নাম সম্প্রসারণের জন্য ব্যবহার করা হয়, তখন একটি নামের শুরুতে বা অবিলম্বে স্ল্যাশের পরে অক্ষরটি ``। '' স্পষ্টভাবে মিলিত হওয়া আবশ্যক, যদি না শেল বিকল্প ডটগলব সেট করা হয়। যখন একটি পাথ নাম্বার মিলছে, তখন স্ল্যাশ অক্ষর অবশ্যই স্পষ্টভাবে মিলিত হবে। অন্য ক্ষেত্রে, ``। '' চরিত্র বিশেষভাবে চিকিত্সা করা হয় না। Nocaseglob , nullglob , এবং ডটগ্লব শেল বিকল্পগুলির একটি বিবরণের জন্য SHELL BUILTIN COMMANDS নীচের shopt নীচের বিবরণ দেখুন।

GLOBIGNORE শেল ভেরিয়েবলটি একটি প্যাটার্নের সাথে মিলে ফাইলের নাম সীমাবদ্ধ করতে ব্যবহার করা যেতে পারে। যদি GLOBIGNORE সেট করা হয়, তবে GLOBIGNORE- এর মধ্যে একটি প্যাটার্নের সাথে মিলিত প্রতিটি মিলে যাওয়া ফাইলের নাম মিলগুলির তালিকা থেকে সরিয়ে দেওয়া হয়। ফাইল নাম ``। '' এবং `` .. '' সর্বদা উপেক্ষা করা হয়, এমনকি যখন GLOBIGNORE সেট করা হয়। যাইহোক, GLOBIGNORE সেটিং ডটগ্লব শেল বিকল্পটি সক্ষম করার প্রভাব রয়েছে, সুতরাং ``। '' এর সাথে শুরু হওয়া সমস্ত অন্যান্য ফাইলের নাম মিলবে ``। '' দিয়ে শুরু হওয়া ফাইলের নাম উপেক্ষা করার পুরানো আচরণটি পেতে, '`। *' ' গ্লোবালোনেয়ারের একটি নিদর্শন তৈরি করুনGLOBIGNORE সেট না থাকাতে dotglob বিকল্পটি অক্ষম করা আছে

প্যাটার্ন ম্যাচিং

কোনো বর্ণচিহ্ন যে একটি প্যাটার্ন প্রদর্শিত, নীচে বর্ণিত বিশেষ প্যাটার্ন অক্ষরের ব্যতীত, নিজেই সাথে মেলে NUL অক্ষর একটি প্যাটার্ন মধ্যে ঘটতে পারে না। বিশেষ প্যাটার্ন অক্ষর উদ্ধৃত করা উচিত যদি তারা আক্ষরিক মিলিত হয়।

বিশেষ প্যাটার্ন অক্ষর নিম্নলিখিত অর্থ আছে:

*

কোন স্ট্রিং সাথে মেলে, নীল স্ট্রিং সহ।

?

কোন একক চরিত্রের সাথে মেলে।

[...]

সংযুক্ত অক্ষরের যেকোনো একটির সাথে মেলে। হাইফেন দ্বারা বিভাজিত অক্ষরের একটি জোড়া একটি রেঞ্জ এক্সপ্রেশন নির্দেশ করে ; যে কোন অক্ষর যে দুটি অক্ষরের মধ্যে সমন্বয়, বর্তমান লোকাল এর collating ক্রম এবং অক্ষর সেট ব্যবহার করে, মিলেছে। যদি প্রথম অক্ষরটি অনুসরণ করা হয় [ একটি ! অথবা একটি ^ তারপর সংযুক্ত কোন চরিত্র মিলেছে। সীমার এক্সপ্রেশন অক্ষরের সাজানোর ক্রম বর্তমান লোকেলের দ্বারা নির্ধারণ করা হয় এবং যদি সেট থাকে তবে LC_COLLATE শেল ভেরিয়েবলের মান। একটি - এটি সেট প্রথম বা শেষ অক্ষর হিসাবে এটি দ্বারা দ্বারা মিলিত হতে পারে। A ] সেটটি সেটের প্রথম অক্ষর হিসাবে অন্তর্ভুক্ত করে মিলেছে।

[ এবং ] এর মধ্যে , অক্ষর শ্রেণীকে সিনট্যাক্স ব্যবহার করে নির্দিষ্ট করা যেতে পারে [: শ্রেণী :] , যেখানে ক্লাসটি POSIX.2 মানতে বর্ণিত নিম্নোক্ত শ্রেণির একটি:

অক্ষর আলফা ASCII ফাঁকা cntrl অঙ্ক গ্রাফ নিম্ন মুদ্রণ punct স্থান উপরের শব্দ xdigit
একটি চরিত্র ক্লাস যে শ্রেণীর অন্তর্গত কোন চরিত্রের সাথে মেলে। অক্ষর শব্দ শব্দ অক্ষর, সংখ্যা, এবং চরিত্র _ মেলে।

[ এবং ] মধ্যে , একটি সমতুল্য শ্রেণী সিনট্যাক্স ব্যবহার করে নির্দিষ্ট করা যেতে পারে [= c =] , যা অক্ষর সি হিসাবে একই সংযোজন ওজন (বর্তমান লোকেল দ্বারা সংজ্ঞায়িত) সহ সকল অক্ষরের সাথে মেলে।

[ এবং ] মধ্যে , সিনট্যাক্স [। প্রতীক ]

যদি এক্সটগ্লব শেল বিকল্প shopt builtin ব্যবহার করে সক্রিয় করা হয়, তাহলে অনেকগুলি সম্প্রসারিত প্যাটার্ন matching অপারেটর স্বীকৃত। নিম্নলিখিত বর্ণনায়, একটি প্যাটার্ন-তালিকা হল একটি। দ্বারা বিচ্ছিন্ন এক বা একাধিক প্যাটার্নের তালিকা । নিম্নলিখিত উপ-নিদর্শনগুলির এক বা একাধিক ব্যবহার করে কম্পোজিট নিদর্শন গঠিত হতে পারে:

? ( প্যাটার্ন-তালিকা )

দেওয়া প্যাটার্ন শূন্য বা এক ঘটনার সাথে মেলে

* ( প্যাটার্ন তালিকা )

প্রদত্ত নিদর্শনগুলির শূন্য বা তার বেশি সংখ্যার সাথে মেলে

+ ( প্যাটার্ন-তালিকা )

প্রদত্ত নকশার এক বা একাধিক ঘটনার সাথে মেলে

@ ( প্যাটার্ন-তালিকা )

প্রদত্ত প্যাটার্নগুলির মধ্যে একটিতে মেলে

! ( প্যাটার্ন তালিকা )

প্রদত্ত নিদর্শনগুলির ব্যতীত কিছু মেলে

উদ্ধৃতি অপসারণ

পূর্ববর্তী এক্সপোশনের পরে, অক্ষর \ , ' , এবং ' এর সমস্ত অসংগঠিত ঘটনার উপরে উল্লিখিত কোনও একটি এক্সপোশান থেকে বেরিয়ে আসে না।

ফেরৎ

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

নিম্নোক্ত বর্ণনায়, যদি ফাইল বর্ণনাকারী নম্বরটি বাদ দেওয়া হয়, এবং পুনঃনির্দেশকরণ অপারেটরটির প্রথম অক্ষর < , পুনঃনির্দেশকরণ হল স্ট্যান্ডার্ড ইনপুট (ফাইল বর্ণনাকারী 0)। যদি পুনর্নির্দেশনা অপারেটরের প্রথম অক্ষর হয় > , পুনর্নির্দেশনাটি স্ট্যান্ডার্ড আউটপুট (ফাইল বর্ণনাকারী 1) বোঝায়।

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

নোট করুন যে পুনর্চালনাগুলির অর্ডার উল্লেখযোগ্য। উদাহরণস্বরূপ, কমান্ড

ls > দ্বিদল 2 > & 1

ফাইল dirlist যাও স্ট্যান্ডার্ড আউটপুট এবং মান ত্রুটি উভয় নির্দেশ, যখন কমান্ড

ls 2 > & 1 > ডিলারস্ট

শুধুমাত্র ডাইরেক্টরি ফাইলটি প্রমিত আউটপুটকে নির্দেশ করে, কারণ স্ট্যান্ডার্ড আউটপুটটিকে স্ট্যান্ডার্ড আউটপুট হিসাবে ডুমিলাক্ট হিসাবে ডুমিলেট করা হয়েছিল এবং ডারলারটি থেকে পুনঃনির্দেশিত করা হয়েছিল

ব্যাশটি কয়েকটি ফাইলের নাম বিশেষভাবে পরিচালনা করে যখন তারা নিম্নোক্ত সারণিতে উল্লিখিত পুনর্বিবেচনার কাজে ব্যবহৃত হয়:

/ dev / fd / fd

যদি fd একটি বৈধ পূর্ণসংখ্যা হয়, ফাইল বর্ণনাকারী fd ডুপ্লিকেট করা হয়।

আপনার / dev / stdin

ফাইল বর্ণনাকারী 0 টি নকল করা হয়।

আপনার / dev / stdout- এ

ফাইল বর্ণনাকারী 1 টি নকল করা হয়।

আপনার / dev / দ্বারা stderr

ফাইলের বর্ণনা 2 ডুপ্লিকেট করা হয়েছে।

/ dev / tcp / host / port

হোস্ট একটি বৈধ হোস্টনাম বা ইন্টারনেট ঠিকানা, এবং পোর্ট একটি পূর্ণসংখ্যা পোর্ট সংখ্যা বা পরিষেবা নাম, সংশ্লিষ্ট সকেট একটি TCP সংযোগ খুলতে bash প্রচেষ্টা।

/ dev / udp / host / port

হোস্ট একটি বৈধ হোস্টনাম বা ইন্টারনেট ঠিকানা, এবং পোর্ট একটি পূর্ণসংখ্যা পোর্ট সংখ্যা বা সার্ভিস নাম, সংশ্লিষ্ট সকেট একটি UDP সংযোগ খুলতে bash প্রচেষ্টা।

একটি ফাইল খুলতে বা তৈরি করতে ব্যর্থতা পুনর্নির্দেশনা ব্যর্থ হতে দেয়।

পুনঃনির্দেশিত ইনপুট

ইনপুট পুনঃনির্দেশকরণ ফাইলটির নাম দেয়, যার নাম ফাইল এক্সটেনশান এন , অথবা মান ইনপুট (ফাইল বর্ণনাকারী 0) এ পড়ার জন্য শব্দটি সম্প্রসারণের জন্য খোলা হবে যদি n নির্দিষ্ট না হয়।

ইনপুট পুনঃনির্দেশিত করার জন্য সাধারণ ফর্ম্যাট হল:

[ n ] < শব্দ

আউটপুট পুনর্চালনা

আউটপুটটির পুনঃনির্দেশকরণটি ফাইলটির নাম দেয় যার নাম ফাইল এক্সটেনশান এন , অথবা স্ট্যান্ডার্ড আউটপুট (ফাইল বর্ণনাকারী 1) এ লেখার জন্য খোলা যাবে, যদি n নির্দিষ্ট না হয়। ফাইল উপস্থিত না থাকলে, এটি তৈরি করা হয়; যদি এটি বিদ্যমান থাকে তাহলে এটি শূন্য আকারে ছোট হয়।

আউটপুট পুনঃনির্দেশকরণের জন্য সাধারণ বিন্যাস হল:

[ n ] > শব্দ

যদি পুনঃনির্দেশকরণ অপারেটর হয়, এবং সেট নির্মিত নেটওয়ার্কে noclobber বিকল্পটি সক্ষম করা হয়েছে, তাহলে পুনর্নির্দেশনাটি ব্যর্থ হবে যদি ফাইলটির বর্ধিত শব্দ থেকে বেরিয়ে আসা ফাইলটি বিদ্যমান এবং এটি একটি নিয়মিত ফাইল। পুনঃনির্দেশকরণ অপারেটর যদি > | , অথবা পুনঃনির্দেশকরণ অপারেটর > এবং সেট বিল্ডিন কমান্ডের noclobber বিকল্পটি সক্ষম করা হয় না, শব্দটি দ্বারা বিদ্যমান ফাইলটি বিদ্যমান থাকলেও পুনর্নির্দেশনাটি চেষ্টা করা হয়।

পুনঃনির্দেশিত আউটপুট যোগ

এই ফাংশনের আউটপুট পুনর্নির্দেশনাটি ফাইলটির নাম দেয় যার নাম ফাইল এক্সটেনশান এন , অথবা স্ট্যান্ডার্ড আউটপুট (ফাইল বর্ণনাকারী 1) এ যোগ করার জন্য খোলা হবে শব্দটি সম্প্রসারিত হলে যদি n নির্দিষ্ট না হয়। ফাইল উপস্থিত না থাকলে, এটি তৈরি করা হয়.

আসন্ন আউটপুট জন্য সাধারণ ফরম্যাট হল:

[ এন ] >> শব্দ

স্ট্যান্ডার্ড আউটপুট এবং স্ট্যান্ডার্ড ত্রুটি পুনর্চালনা

বাশ উভয় মান আউটপুট (ফাইল বর্ণনাকারী 1) এবং স্ট্যান্ডার্ড ত্রুটি আউটপুট (ফাইল বর্ণনাকারী 2) উভয় ফাইলের পুনর্নির্দেশ করা হবে যার নাম এই নির্মাণের সাথে শব্দ সম্প্রসারণ করা হয়।

স্ট্যান্ডার্ড আউটপুট এবং মান ত্রুটি পুনঃনির্দেশিত করার জন্য দুটি বিন্যাস আছে:

& শব্দটি

এবং

> শব্দ এবং শব্দ

দুটি ফর্ম, প্রথম পছন্দ করা হয়। এই semantically সমতুল্য হয়

> শব্দ 2 > & 1

এখানে ডকুমেন্টস

এই ধরনের পুনঃনির্দেশকরণ শেলকে বর্তমান উত্স থেকে ইনপুট পড়ার নির্দেশ দেয় যতক্ষন না কেবল একটি শব্দ (কোন প্রান্তিকের ছাদযুক্ত নয়) একটি লাইন দেখা যায়। যে সকল লাইনগুলি সেই বিন্দু পর্যন্ত পড়ে সেটি একটি কমান্ডের জন্য আদর্শ ইনপুট হিসাবে ব্যবহৃত হয়।

এখানে-নথির বিন্যাস হল:

<< [ - ] এখানে শব্দ -ডকুমেন্ট ডাইমাইমার

কোন প্যারামিটার সম্প্রসারণ, কমান্ড প্রতিস্থাপন, গাণিতিক সম্প্রসারণ, বা পাথনাম সম্প্রসারণ শব্দটি সঞ্চালিত হয় না। শব্দ কোন অক্ষর উদ্ধৃত করা হয়, delimiter শব্দ উদ্ধৃতি উদ্ধৃতি ফলাফল, এবং এখানে-ডকুমেন্টের লাইন প্রসারিত হয় না। যদি শব্দটি সংযুক্ত না হয়, তবে এখানে-ডকুমেন্টের সমস্ত লাইনগুলি প্যারামিটার এক্সপ্যানশন, কমান্ড প্রতিস্থাপন এবং আংশিক সম্প্রসারণের অধীনে রয়েছে। পরের ক্ষেত্রে, অক্ষর ক্রম \ উপেক্ষা করা হয়, এবং অক্ষর \ , $ , এবং `` উদ্ধৃত করতে ব্যবহার করা আবশ্যক।

যদি রিডাইরেক্টেশন অপারেটর << - হয় , তাহলে সমস্ত নেতৃস্থানীয় ট্যাব অক্ষরগুলি ইনপুট লাইন থেকে এবং লাইনটি সীমাবদ্ধ করে রেখেছে । এটি এখানে শেল স্ক্রিপ্টের মধ্যে-নথি একটি প্রাকৃতিক ফ্যাশন ইনডেন্ট করা অনুমতি দেয়।

এখানে স্ট্রিংগুলি

এখানে নথি একটি বৈকল্পিক, বিন্যাস হল:

<<< শব্দ

শব্দটি তার মানক ইনপুটের উপর কমান্ডে প্রসারিত এবং সরবরাহ করা হয়।

ফাইল বর্ণনাকারী ডুপ্লিকেটিং

পুনর্নির্দেশনা অপারেটর

[ n ] <এবং শব্দ

ইনপুট ফাইল বর্ণনাকারীদের ডুপ্লিকেট করতে ব্যবহৃত হয়। যদি শব্দ এক বা একাধিক সংখ্যা প্রসারিত হয়, n দ্বারা চিহ্নিত ফাইল বর্ণনাকারী যে ফাইল বর্ণনাকারীর অনুলিপি তৈরি করা হয়। যদি শব্দগুলির সংখ্যার ইনপুট জন্য একটি ফাইল বর্ণনাকারী খোলা না হয়, একটি পুনঃনির্দেশ ত্রুটি ঘটে। যদি শব্দটি মূল্যায়ন করে - ফাইলটি বর্ণনাকারী এন বন্ধ থাকে। যদি n নির্দিষ্ট না হয়, তবে স্ট্যান্ডার্ড ইনপুট (ফাইল বর্ণনাকারী 0) ব্যবহার করা হয়।

চালক

[ n ] > & শব্দ

অনুরূপ আউটপুট ফাইল বর্ণনাকারী অনুরূপ ব্যবহার করা হয়। যদি n নির্দিষ্ট না হয়, তবে স্ট্যান্ডার্ড আউটপুট (ফাইল বর্ণনাকারী 1) ব্যবহার করা হয়। শব্দ সংখ্যার আউটপুট জন্য খুলুন একটি ফাইল বর্ণনাকারী নির্দিষ্ট না হলে, একটি পুনঃনির্দেশ ত্রুটি ঘটে। একটি বিশেষ ক্ষেত্রে হিসাবে, যদি n বাদ দেওয়া হয়, এবং শব্দ এক বা একাধিক সংখ্যা প্রসারিত না হয়, স্ট্যান্ডার্ড আউটপুট এবং স্ট্যান্ডার্ড ত্রুটি পূর্বরূপ বর্ণিত হিসাবে পুনঃনির্দেশিত করা হয়

ফাইল বর্ণনাকারী মুভিং

পুনর্নির্দেশনা অপারেটর

[ n ] <এবং অঙ্ক -

n উল্লেখ করা না হলে ডিস্ক্রিপ্টর এন , অথবা স্ট্যান্ডার্ড ইনপুট (ফাইল বর্ণনাকারী 0) ফাইল ফাইল ডিসিপ্লিটার ডিজিটকে স্থানান্তর করে। n নকল করার পরে অঙ্কটি বন্ধ হয়ে যায়

অনুরূপভাবে, পুনঃনির্দেশ অপারেটর

[ n ] > & অঙ্ক -

এন বর্ণিত না হলে ডিস্ক্রিপ্টর এন , অথবা স্ট্যান্ডার্ড আউটপুট (ফাইল বর্ণনাকারী 1) ফাইল ফাইল ডিসিপ্লিটরের ডিজিট এ স্থানান্তর করে।

পড়া এবং লেখার জন্য ফাইল বর্ণনাকারী খোলা

পুনর্নির্দেশনা অপারেটর

[ n ] <> শব্দ

ফাইলের নাম যার নাম হয় ফাইল এক্সটেনশন এন , অথবা ফাইল বর্ণনাকারীর উপর পড়া এবং লেখা উভয় জন্য খোলা হবে শব্দ , যদি n নির্দিষ্ট না হয়। ফাইল উপস্থিত না থাকলে, এটি তৈরি করা হয়।

alias লেখা

একটি সরল কমান্ডের প্রথম শব্দ হিসাবে এটি ব্যবহার করা হয় যখন Aliases একটি শব্দ জন্য প্রতিস্থাপ করা একটি স্ট্রিং অনুমতি শেল উপনামগুলির একটি তালিকা বজায় রাখে যা আলাদা এবং অলায়েজ নির্মিত কমান্ডগুলি (নীচের SHELL BUILTIN COMMANDS দেখুন) দিয়ে সেট এবং সেট করা যায় না। প্রতিটি কমান্ডের প্রথম শব্দটি যদি নিখুঁত না হয়, এটি একটি আলিয়াসের কিনা তা দেখতে পরীক্ষা করা হয়। যদি তাই হয়, তবে এই শব্দটি আলিয়াসের লেখা দ্বারা প্রতিস্থাপিত হয়। উপনাম নাম এবং প্রতিস্থাপন পাঠ্যটি কোনও বৈধ শেল ইনপুট ধারণ করতে পারে, উপরে উল্লিখিত Metacharacters সহ, ব্যতিক্রমের সাথে যে উপনাম নাম = থাকতে পারে না প্রতিস্থাপন পাঠের প্রথম শব্দটি আলিয়াগুলির জন্য পরীক্ষিত হয়, কিন্তু একটি শব্দ যা অন্য একটি সম্প্রসারিত অংশ হিসাবে ব্যবহৃত হয়, দ্বিতীয়বার প্রসারিত হয় না। এর মানে হল যে, এক এলআই LS -F উদাহরণস্বরূপ, উদাহরণস্বরূপ, এবং bash পুনরাবৃত্তিকরণ টেক্সট প্রসারিত করার চেষ্টা করে না। যদি উপনাম মানের শেষ অক্ষরটি ফাঁকা থাকে , তবে উর্ধ্বসীমা সম্প্রসারণের জন্য পরবর্তী কমান্ডের শব্দটি আলআমাদের পরেও পরীক্ষা করা হয়।

এলিয়াস কমান্ডের সাহায্যে এলিয়াস তৈরি করা হয় এবং তালিকাভুক্ত করা হয় এবং উলেসিয়াস কমান্ডের মাধ্যমে তা অপসারণ করা হয়।

প্রতিস্থাপন টেক্সট আর্গুমেন্ট ব্যবহার করার জন্য কোন প্রক্রিয়া নেই। আর্গুমেন্ট প্রয়োজন হলে, একটি শেল ফাংশনটি ব্যবহার করা উচিত (নীচে ফাংশন দেখুন)।

শেলটি ইন্টারেক্টিভ না হলে উপনামগুলি প্রসারিত করা হয় না, যদি না expand_aliases শেল বিকল্পটি shopt ব্যবহার করে সেট করা হয় (নীচে SHELL BUILTIN COMMANDS এর অধীনে shopt এর বিবরণ দেখুন)।

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

প্রায় প্রত্যেকটি উদ্দেশ্য জন্য, উপনাম শেল ফাংশন দ্বারা স্থানান্তরিত হয়।

ফাংশন

শেল গ্রামারের উপরে বর্ণিত একটি শেল ফাংশন, পরে মৃত্যুদন্ডের জন্য একটি সিরিজ সিরিজ সংরক্ষণ করে। যখন একটি শেল ফাংশনের নামটি একটি সহজ কমান্ডের নাম হিসাবে ব্যবহৃত হয়, তখন সেই ফাংশন নামটির সাথে সংশ্লিষ্ট কমান্ডগুলির তালিকা কার্যকর করা হয়। কার্যাবলী বর্তমান শেল প্রেক্ষাপটে চালানো হয়; তাদের ব্যাখ্যা করার জন্য কোন নতুন প্রক্রিয়া তৈরি করা হয় না (একটি শেল স্ক্রিপ্ট চালানোর সাথে এর বিপরীতে)। যখন একটি ফাংশন কার্যকর করা হয়, ফাংশনটির আর্গুমেন্টটি কার্যকরীতার সময় অবস্থানগত প্যারামিটার হয়ে যায়। বিশেষ প্যারামিটার # পরিবর্তনটি প্রতিফলিত করার জন্য আপডেট করা হয়। অবস্থানীয় প্যারামিটার 0 অপরিবর্তিত আছে। FUNCNAME ভেরিয়েবলটি ফাংশনের নাম হিসাবে সেট করা হয় যখন ফাংশন কার্যকর হচ্ছে। শেল এক্সিকিউশন এনভায়রনমেন্টের অন্যান্য দিকগুলি ফাংশন এবং তার কলারের মধ্যে অনুরূপ, DEBUG ফাঁদ (নিচের শেএল বুলেটিন কমান্ডগুলির অধীনে ফাঁদের অন্তর্ভূক্তের বিবরণ দেখুন) উত্তরাধিকারসূত্রে পাওয়া যায় না যদি ফাংশনটি ট্রেস অ্যাট্রিবিউট না থাকে ( নীচের declare অন্তর্নির্মিত বিবরণ দেখুন)।

ফাংশন স্থানীয় স্থানীয় ভেরিয়েবল স্থানীয় বিল্ডিন ​​কমান্ডের মাধ্যমে ঘোষিত হতে পারে। স্বাভাবিকভাবে, ভেরিয়েবল এবং তাদের মানগুলি ফাংশন এবং তার কলারের মধ্যে ভাগ করা হয়।

যদি বিল্টিন কমান্ড ফাংশনটি একটি ফাংশনে কার্যকর করা হয়, ফাংশন সম্পূর্ণ হয়ে যায় এবং ফাংশন কলটির পর পরের কমান্ডের সাথে এক্সিকিউশন চালু হয়। যখন একটি ফাংশন সম্পন্ন হয়, অবস্থানগত প্যারামিটারগুলির মান এবং বিশেষ প্যারামিটার # ফাংশনের এক্সিকিউশন থেকে পূর্বে যে মানগুলি ছিল সেগুলি পুনরুদ্ধার করা হয়।

ফাংশন নাম এবং সংজ্ঞাগুলি -f বিকল্পের সাথে ঘোষিত বা টাইপ করুন builtin কমান্ডের সাথে তালিকাভুক্ত করা যেতে পারে। -ফ বিকল্প ঘোষণা বা typeset শুধুমাত্র ফাংশন নাম তালিকা হবে ফাংশনগুলি রপ্তানি করা যেতে পারে যাতে সেগুলি স্বয়ংক্রিয়ভাবে এক্সপোর্ট বিল্ডে -f বিকল্পের সাথে সংজ্ঞায়িত করে থাকে।

ফাংশন পুনরাবৃত্তি হতে পারে। কোন সীমা পুনরাবৃত্তিমূলক কল সংখ্যা উপর আরোপ করা হয়।

এথিনেটিক মূল্যায়ন

শেল কিছু নির্দিষ্ট অবস্থার অধীনে গাণিতিক অভিব্যক্তির মূল্যায়ন করতে সক্ষম হবেন (বিল্ডিন ​​কমান্ড এবং আরিম্যাটিক এক্সটেনশনটি দেখুন )। মূল্যায়নটি স্থির-প্রস্থের পূর্ণসংখ্যায় সম্পন্ন করা হয় না, তবে ওভারফ্লোের জন্য কোন চেক নেই, যদিও 0 দ্বারা বিভক্ত হয় এবং একটি ত্রুটি হিসাবে ফ্ল্যাগ লাগানো হয়। অপারেটর এবং তাদের অগ্রাধিকার এবং সহযোগীতা সি ভাষা হিসাবে একই। অপারেটরদের নিম্নোক্ত তালিকা সমান-অগ্রাধিকার অপারেটরদের স্তরে বিভক্ত করা হয়। স্তর হ্রাস পূর্ববর্তীতা অনুযায়ী তালিকাভুক্ত করা হয়।

আইডি ++ আইডি -

পরিবর্তনশীল পোস্ট বৃদ্ধি এবং পোস্ট হ্রাস

++ আইডি - আইডি

পরিবর্তনশীল প্রাক বৃদ্ধি এবং প্রাক হ্রাস

- +

অপ্রচলিত বিয়োগ এবং প্লাস

! ~

যৌক্তিক এবং বিটওয়াইড নেতিবাচক

**

exponentiation

* /%

গুণ, বিভাগ, অবশিষ্ট

+ -

সংযোজন, বিয়োগ

<< >>

বাম এবং ডান bitwise শিফ্ট

<=> = <>

তুলনা

==! =

সমতা এবং বৈষম্য

&

bitwise এবং

^

বিটাইভ এক্সচেঞ্জ বা

|

বিটওয়াইড বা

&&

লজিক্যাল AND

||

লজিক্যাল OR

expr ? প্রাক্তন

শর্তাধীন মূল্যায়ন

= * = / =% = + = - = << = >> = & = ^ = | =

নিয়োগ

expr1 , expr2

কমা

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

একটি নেতৃস্থানীয় 0 সঙ্গে স্থায়ীভাবে অকটাল সংখ্যা হিসাবে ব্যাখ্যা করা হয়। একটি 0x বা 0x নেতৃস্থানীয় একটি হেক্সাডেসিমেল নির্দেশ করে। অন্যথায়, সংখ্যাগুলি [ বেস # ] n গ্রহণ করে, যেখানে বেসটি সংখ্যা সংখ্যা ২ এবং 64 এর মধ্যে গণিত ভিত্তির প্রতিনিধিত্ব করে, এবং n হলো সেই বেসের একটি সংখ্যা। যদি বেস # বাদ দেওয়া হয় তবে বেস 10 ব্যবহার করা হয়। 9 ক্রম থেকে বড় সংখ্যা ছোট হাতের অক্ষর দ্বারা প্রদর্শিত হয়, বৃহত্তর অক্ষর, @, এবং _, যে ক্রমে। যদি বেসটি 36 এর কম বা সমান হয়, তাহলে ছোট এবং বড় অক্ষরের অক্ষর 10 এবং 35 এর মধ্যে সংখ্যা প্রতিনিধিত্ব করতে interchangably ব্যবহার করা যেতে পারে

অপারেটর অগ্রাধিকারের ভিত্তিতে মূল্যায়ন করা হয়। কণ্ঠস্বরগুলিতে উপ-এক্সপ্রেশনগুলি প্রথমে মূল্যায়ন করা হয় এবং উপরের অগ্রাধিকারের নিয়মগুলি অগ্রাহ্য করতে পারে।

শর্তাধীন এক্সপ্রেশন

শর্তসাপেক্ষ এক্সপ্রেশনগুলি [[ যৌগ কমান্ড এবং পরীক্ষা এবং [ বিল্টিন কমান্ডগুলি ফাইল অ্যাট্রিবিউট পরীক্ষা করে এবং স্ট্রিং এবং গাণিতিক তুলনাগুলি করে। এক্সপ্রেশন নিম্নলিখিত unary বা বাইনারি primaries থেকে গঠিত হয়। যদি প্রাইমারিগুলির কোনও ফাইল আর্গুমেন্ট / dev / fd / n ফর্মের হয় তবে ফাইলটি ডিস্ট্রাক্টর n চেক করা হয়। যদি প্রাইমারিগুলির একটি ফাইল আর্গুমেন্ট / dev / stdin , / dev / stdout , অথবা / dev / stderr , ফাইলের বর্ণনাকারী যথাক্রমে 0, 1, অথবা 2 হয়, তবে এটি চেক করা হয়।

- একটি ফাইল

সত্য যদি ফাইল বিদ্যমান।

-বি ফাইল

সত্য যদি ফাইল বিদ্যমান থাকে এবং একটি ব্লক বিশেষ ফাইল।

-সি ফাইল

সত্য যদি ফাইলটি বিদ্যমান এবং একটি অক্ষর বিশেষ ফাইল।

-d ফাইল

সত্য যদি ফাইলটি বিদ্যমান এবং একটি ডিরেক্টরি।

-e ফাইল

সত্য যদি ফাইল বিদ্যমান।

-f ফাইল

সত্য যদি ফাইল বিদ্যমান এবং একটি নিয়মিত ফাইল।

-জি ফাইল

সত্য যদি ফাইল বিদ্যমান থাকে এবং set-group-id হয়

-হ ফাইল

সত্য যদি ফাইলটি বিদ্যমান এবং একটি প্রতীকী লিঙ্ক।

-k ফাইল

সত্য যদি ফাইল বিদ্যমান থাকে এবং এর `স্টিকি 'বিটটি সেট করা হয়।

-পি ফাইল

সত্য যদি ফাইলটি বিদ্যমান থাকে এবং এটি একটি নামযুক্ত পাইপ (ফিফো)।

-r ফাইল

সত্য যদি ফাইল বিদ্যমান থাকে এবং পঠনযোগ্য হয়।

-স ফাইল

সত্য যদি ফাইলটি বিদ্যমান এবং শূন্যের চেয়ে বড় আকারের হয়

-t fd

সত্য যদি ফাইল বর্ণনাকারী fd খোলা হয় এবং একটি টার্মিনাল বোঝায়।

-U ফাইল

সত্য যদি ফাইলটি বিদ্যমান থাকে এবং সেট-ব্যবহারকারী-আইডি বিট সেট করা হয়।

-w ফাইল

সত্য যদি ফাইল বিদ্যমান এবং লিখনযোগ্য।

-x ফাইল

সত্য যদি ফাইল বিদ্যমান এবং এক্সিকিউটেবল হয়।

-O ফাইল

সত্য যদি ফাইলটি বিদ্যমান থাকে এবং এটি কার্যকর ব্যবহারকারী আইডি দ্বারা পরিচালিত হয়

-জি ফাইল

সত্য যদি ফাইলটি বিদ্যমান থাকে এবং এটি কার্যকর গোষ্ঠী আইডি দ্বারা পরিচালিত হয়

-লি ফাইল

সত্য যদি ফাইলটি বিদ্যমান এবং একটি প্রতীকী লিঙ্ক।

-এস ফাইল

সত্য যদি ফাইলটি বিদ্যমান এবং একটি সকেট হয়

-এন ফাইল

সত্য যদি ফাইল বিদ্যমান থাকে এবং এটি সর্বশেষ পড়ার পরে সংশোধন করা হয়েছে।

ফাইল 1 - NT ফাইল ২

সত্য যদি file1 হল file2 থেকে নতুন (সংশোধন তারিখ অনুসারে), অথবা যদি file1 বিদ্যমান থাকে এবং file2 না হয়।

ফাইল 1 - ওটি ফাইল ২

সত্য যদি file1 file2 থেকে পুরানো হয় , অথবা file2 বিদ্যমান এবং file1 না হয়।

file1 -ef ফাইল 2

সত্য যদি file1 এবং file2 একই ডিভাইস এবং inode সংখ্যার উল্লেখ করেন।

-আচ্ছা

সত্য যদি শেল বিকল্প optname সক্ষম করা হয়। নীচের সেট builtin -o বিকল্পের বিবরণ অধীনে বিকল্প তালিকা দেখুন।

-z স্ট্রিং

সত্য যদি স্ট্রিংয়ের দৈর্ঘ্য শূন্য হয়

-n স্ট্রিং

দড়ি

সত্য যদি স্ট্রিংয়ের দৈর্ঘ্য অ-শূন্য হয়

স্ট্রিং 1 == স্ট্রিং 2

সত্য যদি স্ট্রিং সমান হয়। = POSIX এর কঠোর কঠোর প্রয়োগের জন্য == এর জায়গায় ব্যবহার করা যেতে পারে।

স্ট্রিং 1 ! = স্ট্রিং ২2

সত্য যদি স্ট্রিং সমান না হয়।

স্ট্রিং 1 < স্ট্রিং 2

সত্য যদি string1 টি পংক্তির আগে string2 লেক্সিকফ্রোগ্রাফিকভাবে বর্তমান লোকেলে।

স্ট্রিং 1 > স্ট্রিং 2

সত্য যদি string1 রিকোয়েস্টের পরে বর্তমান লোকালের মধ্যে স্ট্রিং 2 এর পরে।

arg1 OP arg2

ওপ- এর এক -কি , এক, -লটি , -লি , -জিটি , বা -গা । এই গাণিতিক বাইনারি অপারেটরগুলি সত্য প্রমাণ করে যদি arg1 সমান হয়, যথাক্রমে arg2 এর সমান, কম, কম, সমান বা বড়, বা এর চেয়ে বড় বা সমান নয় Arg1 এবং arg2 ইতিবাচক বা নেতিবাচক পূর্ণসংখ্যার হতে পারে।

সহজ কমন এক্সপ্রেশন

যখন একটি সহজ কমান্ড কার্যকর করা হয়, তখন শেলটি বাম থেকে ডানে, নিম্নোক্ত এক্সপ্রেশন, অ্যাসাইনমেন্ট এবং রিডাইরেক্টেশনের কাজ করে।

1. যে শব্দগুলি পার্সার পরিবর্তনশীল অ্যাসাইনমেন্ট (যেগুলি কমান্ডের নাম পূর্ববর্তী) এবং পুনর্নির্দেশনা হিসাবে চিহ্নিত করেছে সেগুলি পরে প্রক্রিয়াকরণের জন্য সংরক্ষণ করা হয়।

2. যে শব্দগুলি ভেরিয়েবল নিয়োগ বা পুনর্নির্মাণ করা হয় না তা প্রসারিত করা হয়। সম্প্রসারণের পরে কোন শব্দ থাকলে, প্রথম শব্দটি কমান্ডের নাম হিসেবে গ্রহণ করা হয় এবং অবশিষ্ট শব্দগুলি আর্গুমেন্ট।

3. রেডারচেশানগুলিকে রিডাইরেক্টেশনের উপরে বর্ণিত হিসাবে সঞ্চালিত হয়।

4. প্রতিটি ভেরিয়েবলের মধ্যে = পরে পাঠ্য পরিবর্তন করার জন্য আগে টিল্ড এক্সটেনশান, প্যারামিটার এক্সটেনশন, কমান্ড প্রতিস্থাপন, সংখ্যাবিজ্ঞান বিস্তার এবং উদ্ধৃতি মুছে ফেলার পরে।

কোন কমান্ডের নাম ফলাফল না হলে, পরিবর্তনশীল অ্যাসাইনমেন্ট বর্তমান শেল পরিবেশকে প্রভাবিত করে। অন্যথায়, চলমান কমান্ডের পরিবেশে ভেরিয়েবল যোগ করা হয় এবং বর্তমান শেল পরিবেশের উপর প্রভাব ফেলে না। যদি কোনও পাঠ্য পাঠ্য পাঠ্যপুস্তকের মান নির্দিষ্ট করার চেষ্টা করে, তবে একটি ত্রুটি ঘটে, এবং কমান্ডটি অ-শূন্য অবস্থা থেকে প্রস্থান করে।

কোন কমান্ডের নাম ফলাফল না হলে, পুনর্চালনা সঞ্চালিত হয়, তবে বর্তমান শেল পরিবেশকে প্রভাবিত করে না। একটি পুনঃনির্দেশকরণ ত্রুটিটি একটি অ-শূন্য অবস্থা থেকে প্রস্থান করার কমান্ডটি দেয়।

যদি সম্প্রসারণের পরে একটি কমান্ডের নাম বাকি থাকে, তাহলে নীচের বর্ণনা অনুসারে চালানো অর্থটি। অন্যথায়, কমান্ড প্রস্থান যদি এক্সপ্রেশনগুলির মধ্যে একটি কমান্ড প্রতিস্থাপন থাকে, কমান্ডের প্রস্থান অবস্থা হল শেষ কমান্ডের প্রতিস্থাপনের এক্সটেনশন স্ট্যাটাস। যদি কোন কমান্ডের পরিবর্তে না থাকে, তাহলে কমান্ডটি শূন্যের স্থিতি দিয়ে প্রস্থান করে।

কম্যান্ড এক্সিকিউশন

একটি কমান্ড শব্দের মধ্যে বিভক্ত হয়ে গেলে, যদি এটি একটি সহজ কমান্ড এবং আর্গুমেন্টগুলির একটি ঐচ্ছিক তালিকার ফলাফল, নিম্নলিখিত কর্ম নেওয়া হয়।

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

নাম যদি শেল ফাংশন না হয় এবং কোন বিল্ডিন ​​না থাকে, এবং কোনও স্ল্যাশ নেই, তাহলে এই নামের একটি এক্সিকিউটেবল ফাইল ধারণকারী একটি ডিরেক্টরি জন্য PATH এর প্রতিটি উপাদান অনুসন্ধান করে। ব্যাশ এক্সিকিউটেবল ফাইলগুলির পুরো পাথকে মনে রাখার জন্য একটি হ্যাশ টেবিল ব্যবহার করে (নীচে শেএল বিল্টিন কমান্ডের অধীনে হ্যাশ দেখুন)। PATH- তে ডিরেক্টরিগুলির একটি সম্পূর্ণ অনুসন্ধান কেবল সঞ্চালিত হয় যদি কমান্ডটি হ্যাশ টেবিলতে পাওয়া যায় না। অনুসন্ধানটি অসফল হলে, শেলটি একটি ত্রুটি বার্তা প্রিন্ট করে এবং 127 এর একটি প্রস্থান স্থিতিটি ফেরত দেয়।

অনুসন্ধান সফল হলে, বা কমান্ডের নামের মধ্যে এক বা একাধিক স্ল্যাশ থাকলে, শেলটি একটি পৃথক এক্সিকিউশন পরিবেশে নামযুক্ত প্রোগ্রামটি চালায়। আর্গুমেন্ট 0 দেওয়া নাম সেট করা হয়, এবং কমান্ডের অবশিষ্ট আর্গুমেন্ট দেওয়া আর্গুমেন্ট, যদি থাকে, সেট করা হয়।

ফাইলটি এক্সিকিউটেবল ফরম্যাটে না থাকলে এই এক্সিকিউশন ব্যর্থ হয়ে যায়, এবং ফাইলটি কোন ডিরেক্টরি নয়, এটি একটি শেল স্ক্রিপ্ট বলে মনে করা হয়, শেল কমান্ড ধারণকারী একটি ফাইল। একটি subshell এটি চালানো spawned হয়। এই subshell নিজেই পুনরায় শুরু করে, যাতে প্রভাব এমন হয় যেন একটি নতুন শেলটি স্ক্রিপ্টটি পরিচালনা করার জন্য চালু করা হয়, তবে ব্যতিক্রম যেকোন বাচ্চার (কমান্ডের নিচে SHHEL BUILTIN COMMANDS- এর নিচে হ্যাশ দেখুন) শিশু দ্বারা নির্ধারিত কমান্ডের অবস্থান।

যদি প্রোগ্রামটি একটি ফাইল # দিয়ে শুরু হয় ! , প্রথম লাইন বাকি প্রোগ্রামের জন্য একটি ইন্টারপ্রেটার নির্দিষ্ট করে। শেল অপারেটিং সিস্টেমে নির্দিষ্ট ইন্টারপ্রেটার চালায় যা এই এক্সিকিউটেবল ফরম্যাটে নিজেদেরকে পরিচালনা করে না। ইন্টারপ্রেটারের আর্গুমেন্ট প্রোগ্রামের প্রথম লাইনের উপর দোভাষী নামের একটি একক ঐচ্ছিক আর্গুমেন্টের অন্তর্ভুক্ত, প্রোগ্রামের নাম অনুসরণ করে, কমান্ড আর্গুমেন্ট দ্বারা অনুসরণ করা হলে, যদি থাকে।

COMMAND এক্সিকিউশন এনভাইরনমেন্ট

শেল একটি এক্সিকিউশন এনভায়রনমেন্ট রয়েছে , যার মধ্যে নিম্নলিখিতগুলি রয়েছে:

* এক্সেল বিল্ডিন ​​সরবরাহ করা রিডাইরেক্টেশন দ্বারা সংশোধিত হিসাবে আহ্বান শেল দ্বারা উত্তরাধিকারসূত্রে প্রাপ্ত ফাইল খুলুন

* সিডি , পুশড , বা পপ দ্বারা নির্ধারিত বর্তমান কার্যকরী ডাইরেক্টরি, বা আহ্বানে শেল দ্বারা উত্তরাধিকারসূত্রে প্রাপ্ত

* ফাইল তৈরির মোড মাস্ক যেমন umask দ্বারা সেট করা হয় বা শেলের প্যারেন্ট থেকে উত্তরাধিকারসূত্রে পাওয়া যায়

* ফাঁদ দ্বারা সেট করা বর্তমান ফাঁদ

* শেল প্যারামিটার যে পরিবর্তনশীল অ্যাসাইনমেন্ট দ্বারা সেট করা হয় বা সেট সহ বা পরিবেশে শেল এর প্যারেন্ট থেকে উত্তরাধিকারসূত্রে প্রাপ্ত

* শেল ফাংশন পরিবেশে শেল এর প্যারেন্ট থেকে সঞ্চালন বা উত্তরাধিকারী মধ্যে সংজ্ঞায়িত

* বিকল্পগুলি অদ্বিতীয় (ডিফল্ট বা কমান্ড-লাইন আর্গুমেন্ট দ্বারা) বা সেট দ্বারা সক্রিয়

* Shopt দ্বারা সক্ষম অপশনগুলি

* শূন্য উপনামগুলি আলাদা দ্বারা সংজ্ঞায়িত

* বিভিন্ন প্রক্রিয়া IDs, ব্যাকগ্রাউন্ড কাজগুলি সহ, $ $ মান এবং $ PPID এর মান

যখন একটি বিল্টিন বা শেল ফাংশন ব্যতীত একটি সাধারণ কমান্ড চালানো হয়, তখন এটি একটি পৃথক এক্সিকিউশন পরিবেশে প্রয়োগ করা হয় যা নিম্নলিখিতগুলির মধ্যে রয়েছে। অন্যথায় উল্লিখিত না হওয়া পর্যন্ত, মান শেল থেকে উত্তরাধিকারসূত্রে পাওয়া যায়।

* শেলের খোলা ফাইলগুলি, এবং কমান্ডের পুনঃনির্দেশ দ্বারা নির্দিষ্ট করা কোনও পরিবর্তন এবং সংযোজন

* বর্তমান কাজ ডিরেক্টরি

* ফাইল তৈরির মোড মাস্ক

* এক্সপোর্টের জন্য চিহ্নিত শেল ভেরিয়েবল, পাশাপাশি পরিবেশে প্রেরিত কমান্ডের জন্য রপ্তানি করা ভেরিয়েবলগুলির সাথে

* শেল দ্বারা আটকানো ফাঁদগুলি শেলের পিতা বা মাতা থেকে উত্তরাধিকারসূত্রে পুনঃসেট করা হয় এবং শেল দ্বারা উপেক্ষা করা ফাঁদগুলি উপেক্ষা করা হয়

এই আলাদা পরিবেশে একটি কমান্ড প্রয়োগ করা হয় শেলের এক্সিকিউশন পরিবেশকে প্রভাবিত করতে পারে না।

কমান্ড প্রতিস্থাপন এবং অ্যাসিঙ্ক্রোনাস কমান্ডগুলি একটি সাশেলে পরিবেশে প্রয়োগ করা হয় যা শেল পরিবেশের একটি অনুলিপি হয়, ব্যতীত শেল দ্বারা আটকে যাওয়া ফাঁদগুলির মূল্যগুলি পুনঃস্থাপিত হয় যা শেলটি তার পিতামাতার কাছ থেকে আহ্বানে প্রাপ্ত হয়। একটি পাইপলাইন অংশ হিসাবে আযোজিত অন্তর্নির্মিত কমান্ডগুলি একটি সাবসহেল পরিবেশে সঞ্চালিত হয়। Subshell পরিবেশে করা পরিবর্তনগুলি শেলের নির্বাহ পরিবেশকে প্রভাবিত করতে পারে না।

যদি একটি কমান্ডটি কোনও & কাজ নিয়ন্ত্রণ দ্বারা অনুসরণ করা হয় তবে কমান্ডের জন্য ডিফল্ট মান ইনপুট হল খালি ফাইল / dev / null । অন্যথায়, আয়োজিত কমান্ড ডায়ালিং শেলের ফাইল বর্ণনাকারীকে পুনর্বিন্যাস দ্বারা সংশোধন করে উত্তরাধিকারসূত্রে প্রাপ্ত।