`]` এর টোকেন শনাক্তকারী কী?


9

বাশ ম্যানুয়াল বলেছেন:

যখন [ফর্মটি ব্যবহৃত হয়, কমান্ডের সর্বশেষ যুক্তিটি অবশ্যই একটি]।

$ type [
[ is a shell builtin
$ type ]
bash: type: ]: not found

সুতরাং ]এটি কোনও সংরক্ষিত শব্দ নয়, এটি অপারেটরও নয়, না বিল্টিন কমান্ডও।

টোকেন হিসাবে, টোকেন শনাক্তকারী ]কী? ওয়ার্ড বা নাম?


4
আসলে, [এটিও (একটি) স্বনির্ভর আদেশ উদাহরণস্বরূপ kill। কিছু সিস্টেমে testকমান্ডটি প্রতীকী লিঙ্ক [বা তদ্বিপরীত। আফাইক, ]নিজের দ্বারা কোনও অর্থ বোঝায় না তবে এটি "বন্ধ" এ গ্রহণ করা হয়েছে [- তবে এটি "নান্দনিক" কারণে আরও বেশি।
বার্ড কোপ্পেরুদ

5
শেল ল্যাঙ্গুয়েজ গত 46 বছরে একের পর এক স্তর বৃদ্ধি পেয়েছে এবং অভ্যন্তরীণ ধারাবাহিকতা কখনই অগ্রাধিকার পায়নি। আপনি যদি এটিকে যেকোন ধরণের তাত্ত্বিক প্রথাগত-ভাষা কাঠামোর সাথে জোর করে ফিট করার চেষ্টা করেন তবে আপনার খারাপ সময় হতে চলেছে।
zwol

যেহেতু [(এছাড়াও) একটি স্ব-অন্তর্ভুক্ত কমান্ড, এটি সাধারণত একটি ম্যান-পৃষ্ঠা পেয়েছিল ... সুতরাং চেষ্টা করুন man [এবং / অথবা man test( [এবং testএকই আদেশ হতে পারে)।
বার্ড কোপ্পেরুদ

]একক বা ডাবল উদ্ধৃতিগুলিতে স্টিক রাখার চেষ্টা করুন এবং দেখবেন এটি কোনও তাত্পর্যপূর্ণ নয়; এটি কেবল একটি স্ট্রিং।
ওয়াইল্ডকার্ড

উত্তর:


21

]পরিপূরক [, এটি [কমান্ডের সমাপ্তি চিহ্ন ।

হিসাবে manপৃষ্ঠা তুলে ধরে, আসলে এই একটি যুক্তি [, কিন্তু [শেষের যেমন বিশেষ করে চিকিত্সার জন্য, ঘটবে।

আপনি হয়ত অন্য কোন কমান্ড বন্ধের নিদর্শন সঙ্গে এটি অনুরূপ পারেন, উদাহরণস্বরূপ ;মধ্যে find .. exec


ধন্যবাদ। টোকেন প্রকার / এর শনাক্তকারী কী ]?
টিম

8
@ টিম ]এই প্রসঙ্গে অন্য কোনও সাধারণ চরিত্রের চেয়ে আলাদা নয় (একটি আদেশের যুক্তি হিসাবে)। testকমান্ড এটা বিশেষভাবে, কিন্তু যে কমান্ড আপ একইরূপে।
মারু

6
এটি কেবল একটি স্ট্রিং, এবং [এর চূড়ান্ত যুক্তি হুবহু সমান না হলে একটি ত্রুটি উত্থাপন করে ]
চিপনার

19

বাশ বর্ণ [বা ]বর্ণগুলি (তাদের নিজস্বভাবে) বর্ণমালার একটি বর্ণ থেকে আলাদা বলে মনে করে না।

এই ক্ষেত্রে বাশ একটি "শব্দ" দেখে [, এবং সেই নামের সাথে একটি আদেশ সন্ধান করে। আপনি যদি আপনার ফাইল সিস্টেমে সন্ধান করেন তবে আপনি সম্ভবত আবিষ্কার করতে পারবেন যে /bin/[(বা /usr/bin/[) একটি এক্সিকিউটেবল ফাইল হিসাবে বিদ্যমান। এটি হওয়ার সাথে সাথে, বাশ একটি বিল্ট ভার্সনও সরবরাহ করে (দক্ষতার জন্য), তবে এটি কেবল একটি বাস্তবায়ন বিশদ।

[(যেমন এই নামের এক্সিকিউটেবল) কমান্ড একটি নিয়ম যে গত প্যারামিটার আপনি এটি পাস হওয়া উচিত হয়েছে ]বা অন্য এটি একটি ত্রুটির ছোঁড়ার। এটি আংশিক হতে পারে কারণ এটি নান্দনিকভাবে আনন্দদায়ক হয় তবে এটি আপনাকে দুর্ঘটনাক্রমে সংক্ষিপ্ত আদেশগুলি থেকে রক্ষা করতেও সহায়তা করে যা দুর্দান্ত।

এগুলি বিশেষ নয় বলে আপনি কেন আগে [বা পরে সাদা স্থান বাদ দিতে পারবেন না ]


ব্যতিক্রম :

  • যখন [এবং ]একই শব্দ মধ্যে সঠিক বিন্যাসে ঘটে, যেমন [a-z], তাহলে সেই হয় বিশেষ এবং ব্যাশ এর globbing নিয়ম প্রযোজ্য।
  • [[কমান্ড হয় বিশেষ এবং অনেক কিছু করতে পারি না [করতে পারবেন না (এবং পরামিতি ভিতরে [[ .. ]]ভিন্নভাবে প্রসেস করা হয়, যেমন কিছু লাইন ব্রেক আছে)। সংশ্লিষ্ট ]]বিশেষ, যেমন এটি একটি শেল সংরক্ষিত শব্দ কমান্ড নাম হতে পারে না, এবং বিশেষ প্রক্রিয়াকরণ যে অনুসরণ করে বন্ধ হয় [[শব্দ।

1
@ জ্যাকবকরল এটি কোনও বিশেষ চরিত্রের মতো ;বা নয় >এটি কেবল একটি বিল্ট-ইন কমান্ডের মতো cd। বিশেষত, আপনি যদি টাইপ করেন [xতবে [এর কোনও বিশেষ অর্থ নেই।
বারমার

2
@ জ্যাকবক্রলাল এটি সমস্ত বিল্ট-ইন কমান্ডের জন্য সত্য। [এটি একটি বিশেষ কমান্ড , এটি কোনও বিশেষ চরিত্র নয়
বারমার

@ বারমার: যথেষ্ট ফর্সা; আমি আমার মন্তব্য প্রত্যাহার।
জ্যাকব কুলরে

আসলে ]]চেয়ে বিশেষ ]। ব্যবহার করার সময় [এবং ]তারা কেবল শব্দ। যদি আপনি ]এটিকে বাদ দিয়ে বা অন্য একটি শব্দ দিয়ে প্রতিস্থাপন করেন তবে ব্যাশটি এখনও চলবে [তবে [ত্রুটি তৈরি করবে produce তবে [[এবং ]]পার্সিং সময় বিশেষ চিকিত্সা করা হয়। আপনি যদি ]]অন্য কিছু দিয়ে প্রতিস্থাপন করেন তবে ব্যাশ সিন্ট্যাক্স ত্রুটির প্রতিবেদন করবে। এবং আপনি বাদ দিলে ]]বাশটি পরবর্তী লাইনটি অনুসন্ধান করে রাখবে ]]
ক্যাস্পারড

@ ক্যাস্পার্ড উত্তর সামঞ্জস্য হয়েছে।
এএমএস

3

এটি আগের দুটি উত্তরের চেয়ে আরও সহজভাবে বলা, ]কেবল একটি স্ট্রিং যা [চালানো দরকার।


1
এটি কিছুটা মন্তব্যের মতো মনে হচ্ছে ...
wizzwizz4

@ wizzwizz4, মন্তব্যগুলিতে ওপি থেকে ফলোআপ প্রশ্নাবলী দেওয়া, আমি মনে করি যে এই সরলতা তার প্রয়োজন ঠিক ঠিক।
ওয়াইল্ডকার্ড

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