"/ বিন / [" ঠিক কীভাবে কাজ করে?


50

আমি সর্বদা অবাক হই যে ফোল্ডারে /binএকটি [প্রোগ্রাম রয়েছে।

এই কি বলা হয় যখন আমরা ভালো কিছু করছেন: if [ something ]?

[প্রোগ্রামটিকে স্পষ্টভাবে একটি শেলের মাধ্যমে কল করার মাধ্যমে এটি একটি অনুরূপ অনুরোধ করে ]এবং আমি বন্ধনী বন্ধনী সরবরাহ করিলে মনে হয় বন্ধনীগুলির মধ্যে আমি যা সন্নিবেশ করিয়েছি তা কিছুই করা যায় না।

বলা বাহুল্য, কাজ করে না একটি প্রোগ্রাম সম্বন্ধে সাহায্য পেয়ে, অর্থাত তন্ন তন্ন সম্পর্কে স্বাভাবিক ভাবেই man [না [ --helpকাজ করে।


11
@ ইপ্পারসিরার কমান্ডকে [বোঝায় testযদিও তা নয় expr, তবে এটি হওয়া উচিতman test
সের্গি কোলোডিয়াজনি

8
man '['আমার পক্ষে ভাল কাজ করে - হয় আপনি উদ্ধৃতি দিতে ভুলে গেছেন [বা আপনার "কার্য" এর আলাদা সংজ্ঞা রয়েছে।
টবির গতি

3
কয়েকটি সতর্কতা: এর [তর্কগুলি মূল্যায়ন করে, তাই আপনার সকলের মধ্যে ফাঁক হওয়া দরকার। [ a=b ]তুলনা নয়: এটি সর্বদা সত্য হবে (এটি একটি একক স্ট্রিং: "a = b", যা সর্বদা সত্যের জন্য মূল্যায়ন করা হয় ) এবং আপনার পক্ষে যুক্তি সংখ্যা 4-এ সীমাবদ্ধ করা উচিত (যদিও সাম্প্রতিক বাস্তবায়নগুলি আরও বেশি অনুমতি দেবে .. 4 এর মধ্যে সীমাবদ্ধকরণ এটি আরও পোর্টেবল করে তোলে example উদাহরণস্বরূপ: [ "a" = "b" ]ইতিমধ্যে 4 টি যুক্তি রয়েছে: "এ" "=" "বি" এবং পরীক্ষার আর্গুমেন্টের অপ্রয়োজনীয় শেষ: "]")। আপনার যদি আরও প্রয়োজন হয়: উদাহরণস্বরূপ চেইন পরীক্ষাগুলি:if [ "$Var_a" = "foo" ] && [ "$Var_b" = "bar" ] ; then : do something ; fi
অলিভিয়ার ডুলাক

1
@ অলিভিয়ারডুলাক !নিজেই (অনাকাঙ্ক্ষিত এবং অব্যক্ত) প্রতিস্থাপন করা হবে না এবং আরও ভাল if ! [ ...। ব্যাশ প্রসারণও ব্যবহার সব !অন্তত অন্যান্য চরিত্র অন্তর্ভুক্ত
muru

3
আপনার এও লক্ষ্য করা উচিত যে সেখানে একটি [বিল্টিন রয়েছে bash(এবং সম্ভবত অন্যান্য শেলগুলিও রয়েছে ) এবং এটি পরিবর্তে এটি ব্যবহার করা যেতে পারে /bin/[। এছাড়াও- testকম্যান্ড রয়েছে, যা অনেক সিস্টেমে প্রতীকী লিঙ্ক হয় /bin/[(বা বিপরীতে) - তবে অন্যদের কাছে পৃথক কমান্ড।
বার্ড কোপ্পেরুদ

উত্তর:


63

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

এটি এমন কিছু নয় যে এটি কিছুই করে না, কেবল তার ফলাফলটি তার প্রস্থান স্থিতিতে পাওয়া যাবে। শেল-এ, আপনি $?বোর্নের মতো শেল বা $statusঅন্যান্য বেশিরভাগ শেল (ফিশ / আরসি / এসএস / সিএসএস / টিসিএস ...) এ শেষ কমান্ডের প্রস্থান স্থিতি সম্পর্কে জানতে পারবেন ।

$ [ a = a ]
$ echo "$?"
0
$ [ a = b ]
$ echo "$?"
1

অন্যান্য ভাষায় যেমন perlপ্রস্থানটির স্থিতি ফেরত দেওয়া হয় যেমন system():

$ perl -le 'print system("[", "a", "=", "a", "]")'
0

নোট করুন যে সমস্ত আধুনিক বোর্নের মতো শেলগুলির (এবং fish) একটি বিল্ট-ইন [কমান্ড রয়েছে। এক /binসাধারণত শুধুমাত্র কার্যকর করা হবে যখন অন্য শেল ব্যবহার করুন অথবা আপনার মত কিছু যখন env [ foo = bar ]বা find . -exec [ -f {} ] \; -printবা যে perlউপরোক্ত কমান্ডের ...

[কমান্ড এছাড়াও দ্বারা পরিচিত হয় testনাম। যখন হিসাবে ডাকা হয় test, এটির সমাপ্তি ]যুক্তি প্রয়োজন হয় না ।

আপনার সিস্টেমে ম্যান পেজ নাও থাকতে পারে তবে [এটির জন্য সম্ভবত একটি পৃষ্ঠা রয়েছে test। তবে আবার, নোট করুন এটি বাস্তবায়ন /bin/[বা /bin/testবাস্তবায়নের নথি করবে । [আপনার শেলের অন্তর্নির্মিত সম্পর্কে জানতে আপনার শেলের জন্য ডকুমেন্টেশনটি পড়া উচিত।

সেই ইউটিলিটির ইতিহাস এবং [[...]]ksh পরীক্ষার এক্সপ্রেশনটির সাথে পার্থক্য সম্পর্কে আরও তথ্যের জন্য আপনি এই অন্যান্য প্রশ্নোত্তরটি এখানে দেখতে চান


যথারীতি ভালো আপনি @ ব্রিগেলড প্রশ্নের নীচে আমি যুক্ত করা মন্তব্যগুলিতে যোগ করতে চাইতে পারেন? বা কিছু অতিরিক্ত আছে? এইভাবে উত্তরটি "এটি ঠিক কীভাবে কাজ করে" সম্পর্কে আরও সম্পূর্ণ হবে (আমি লক্ষ্য করেছি যে আপনি ইতিমধ্যে "]" সম্পর্কে আমার সম্পর্কে আরও কঠোর তথ্য দিয়েছেন ^^)
অলিভিয়ার ডুলাক

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

@ গিলস বোর্ন শেল ইউনিক্স সিস্টেম III এর সাথে [এবং testবিল্টিন হিসাবে উভয়ই প্রয়োগ করেছে । এর আগে, ছিল না [এবং testকেবল একটি বাহ্যিক বাইনারি কমান্ড ছিল।
jlliagre

@Gilles, মূল ছাই পরীক্ষা builtin (expr সঙ্গে মিশে গিয়েছে) ছিল, কিন্তু ঐচ্ছিকরূপেইন.আলম.ডে / scম্যাশেক / ভার্ভিস / ক্যাশ অনুসারে, বিএসডিগুলিতে প্রায় ২০০০ অবধি পরীক্ষা বিল্টিন ছিল না। আমি "আধুনিক" যুক্ত করেছি।
স্টাফেন চ্যাজেলাস

কেন আপনি বিশ্বের করতে চান find . -exec [ f {} ] \; -print? কমান্ড find . -type f -printএকই জিনিস করতে হবে , যাতে অনেক বেশি দক্ষতার সঙ্গে ...
এটা আমার আসল নাম নয়

41

আমি সর্বদা অবাক হই যে ফোল্ডারে /binএকটি [প্রোগ্রাম রয়েছে।

আপনি অবাক হতে ঠিক বলেছেন। নাল ইউটিলিটি ( :) সহ এটি একটি বিরল POSIX কমান্ড, যা কমান্ড ফাইল অনুমোদিত অক্ষর কনভেনশন (পোর্টেবল ফাইলের নাম অক্ষর সেট) কে সম্মান করে না।

কি বলা হয় যখন আমরা ভালো কিছু করছেন: if [ something ]?

অবিলম্বে তবে এটিও ছাড়াই ব্যবহার করা ifযায়।

[প্রোগ্রামটিকে স্পষ্টভাবে একটি শেলের মাধ্যমে কল করার মাধ্যমে এটি একটি অনুরূপ অনুরোধ করে ]এবং আমি বন্ধনী বন্ধনী সরবরাহ করিলে মনে হয় বন্ধনীগুলির মধ্যে আমি যা সন্নিবেশ করিয়েছি তা কিছুই করা যায় না।

এটি দৃশ্যমান কিছুই করে না তবে এটি ব্যবহারের চেয়ে আসলে একই কাজটি করে if, যেমন আপনি বন্ধনীগুলির মধ্যে যা রেখেছিলেন তার উপর নির্ভর করে এটি প্রস্থান স্থিতি 0 (সত্য) বা অন্য কিছু (মিথ্যা) সেট করে। এটি (একটি কারণে) testআদেশের মতো একই আচরণ ; পার্থক্য কেবল এটিই শেষের সন্ধান করে ]। দেখুন man testবিস্তারিত জানার জন্য।

বলা বাহুল্য, কাজ করে না একটি প্রোগ্রাম সম্বন্ধে সাহায্য পেয়ে, অর্থাত তন্ন তন্ন সম্পর্কে স্বাভাবিক ভাবেই man [না [ --helpকাজ করে।

এটি আপনার অপারেটিং সিস্টেমের উপর নির্ভর করে। man [অবশ্যই মূলধারার Gnu / লিনাক্স বিতরণের বেশ কয়েকটি ক্ষেত্রে আমার জন্য কাজ করে তবে এটি সোলারিসে আসে না।

[ --helpবাস্তবায়নের উপর নির্ভর করে কাজ করতে পারে বা নাও পারে কারণ এটি সিনট্যাক্সটি যেভাবেই ভাঙছে, শেষটি অনুপস্থিত ]। অধিকন্তু, জন্য POSIX মান test/ [কমান্ড স্পষ্টভাবে সহ সব বিকল্প, আউট নিয়ম --বিকল্প পরিসমাপ্তি তাই উভয় [ --help ]এবং test --helpফিরে যাওয়ার প্রয়োজন trueএবং নকশা দ্বারা চুপ। মনে রাখবেন যে, তুমি কি বন্ধনী ভিতরে বা পরে করা [যে (যেমন অপশন মত চেহারা এবং -f file, -n string, এবং পছন্দগুলি) নয় অপশন কিন্তু operands

আধুনিক সব বোর্ন শৈলী শেল দোভাষী (যেমন bash, ksh, dashএবং zshকয়েক নাম) বাস্তবায়ন test/ [উপযোগ অভ্যন্তরীণভাবে একটি builtin সুতরাং যখন আপনি তাদের ব্যবহার, ডান ম্যানুয়েল পৃষ্ঠা উল্লেখ করতে শেল এক, নাও হতে পারে testনা।

ইউনিক্স সিস্টেম III এর আগে (1981), বোর্ন শেল testইউটিলিটিটি বিল্টিন হিসাবে প্রয়োগ করেনি তাই কেবলমাত্র বাহ্যিক বাইনারি কমান্ড বাস্তবায়ন উপলব্ধ ছিল। [ইউনিক্স সিস্টেম III অবধি কোনও আদেশ (অভ্যন্তরীণ বা বিল্টিন) ছিল না সুতরাং উদাহরণস্বরূপ ইউনিক্স সংস্করণ 7 এর অধীন আপনাকে টাইপ করতে হয়েছিল:

if test something ; then

পরিবর্তে:

if [ something ] ; then


"মানুষ [স্পষ্টতই মূলধারার জ্ঞানু / লিনাক্স বিতরণে আমার জন্য কাজ করে" হুঁ .. সেন্টোস (স্বীকৃত 6..৮ এখনও স্পষ্টভাবে) মূলধারার যথেষ্ট নয় :) man testকাজ করে তবে man [ অন্যদিকে আমার সাইগউইন পরিবেশ সম্পর্কে জানা যায় না man [!
আদম

1
@ অ্যাডাম হ্যাঁ, আপনি ঠিক বলেছেন, এটি আমার চেয়ে বেশি সাম্প্রতিক, যদিও আমি সমস্ত মূলধারার লিনাক্স ডিস্ট্রোস লিখিনি, কেবল এটি আমার পক্ষে কাজ করেছে (যেমন আমি পরীক্ষিতগুলির উপরে)। এটি ওল 7.2 (আরএইচইল 7.2) ক্লোন এবং পুদিনা 17.1 (উবুন্টু 14.04)।
jlliagre

man [মানজারো (আর্চ লিনাক্স ভিত্তিক) এ কাজ করছে বলে মনে হচ্ছে না। একটি বৈধ অনুরোধ হিসাবে testতালিকার জন্য ম্যানুয়াল [ --helpযা সহায়তা দেখাতে পারে, তবে আকর্ষণীয়ভাবে এটি হয় না এবং পরিবর্তে এটি অনুপস্থিত সম্পর্কে অভিযোগ ]করে --version। যোগ করা কোনও কাজ ]করে না, সুতরাং এগুলি ছাড়া অন্য কোনও সহায়তা পাওয়া অসম্ভব বলে মনে হচ্ছে man test
দারখোগ

@ দারখোগ আপনি চেষ্টা করতে পারেন /usr/bin/[ --helpবা /bin/[ --help
jlliagre

1
@ জেলিয়াগ্র্রে আপনি পুরোপুরি ঠিক বলেছেন, আমি বিল্টিনগুলি ব্যবহার করছিলাম। env [ --helpপাশাপাশি /usr/bin/[ --helpপুরোপুরি সূক্ষ্মভাবে কাজ করুন (যদিও আমার উদ্ধৃতি /usr/bin/[বা zsh অভিযোগ করতে হবে)।
দারখোগ

10

[প্রকৃতপক্ষে testকমান্ড হিসাবে বেশি পরিচিত । এই কমান্ডটির সাধারণ ব্যবহার হ'ল প্রকাশের মূল্যায়ন করা এবং তাদের অবস্থাটি সত্য - মিথ্যা ফিরিয়ে আনা। এটি প্রায়শই if-then-else-fiবিবৃতিতে ব্যবহৃত হয় , যদিও এটি ifশর্তযুক্ত শেল &&বা ||অপারেটরগুলির মাধ্যমে অন্যান্য কমান্ডগুলি চালনার জন্য বিবৃতিগুলির বাইরে ব্যবহার করা যেতে পারে ।

$ [ -e /etc/passwd  ] && echo "File exists"
File exists

$ test -e /etc/passwd && echo "File exists"
File exists

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

এর অবস্থানটি আপনার সিস্টেমে নির্ভর করে এবং এটি করার পরেও কেন আপনি মেন পৃষ্ঠাটি দেখেন নি man [। উদাহরণস্বরূপ, ফ্রিবিএসডি-তে এটি অন্তর্গত /bin। লিনাক্সে (বা আমার নির্দিষ্ট ক্ষেত্রে উবুন্টু 16.04) এটিতে রয়েছে /usr/bin/। আপনি যদি কোনও লিনাক্স সিস্টেমটি করেন man [বা man testকরেন, আপনি একই ডকুমেন্টেশনটি উন্মুক্ত দেখতে পাবেন। আপনার শেলটির নিজস্ব প্রয়োগও থাকতে পারে তা এটিও গুরুত্বপূর্ণ test

এটিও লক্ষ করা উচিত যে এই কমান্ডটিতে সমস্যা রয়েছে , যেগুলি কর্ন শেলের প্রয়োগ (সাধারণত "শর্তসাপেক্ষ অভিব্যক্তি" হিসাবে ডাবল স্কোয়ার বন্ধনী সহ রেফারেন্স হিসাবে পরিচিত [[ "$USER" = "root" ]]) সমাধান করার চেষ্টা করে। এই বৈশিষ্ট্যটি অন্যান্য শেল যেমন bashএবং এর দ্বারাও ব্যবহৃত হয় zsh


/usr/bin/আমাজন লিনাক্সের জন্যও।
ফ্র্যাঙ্কলিনসিজো

@ স্টাফেনচাজেলাস আপনাকে ধন্যবাদ উত্তর অনুসারে সম্পাদিত হয়েছে
সের্গেই কলডিয়াজন্য

3

আমরাও man [না [ --helpকাজ

কিছু ডিস্ট্রোজে (উদাঃ উবুন্টু), এর man [একটি সিমিলিংক অনুসরণ করে test(1)। অন্যদের (যেমন আর্চ) এর ক্ষেত্রে এটি হয় না। (তবে testম্যান পেজটি নথির ব্যবহারও করে [)


type -a [ আপনাকে দেখায় যে একটি শেল বিল্টিন এবং এক্সিকিউটেবল উভয়ই রয়েছে।

$ type -a [
[ is a shell builtin
[ is /usr/bin/[

ব্যাশ-বিল্টিন [ --helpকেবল একটি ত্রুটি বার্তা প্রিন্ট করে। (তবে এটি যেহেতু অন্তর্নির্মিত, তাই আপনি help [ব্যাশ ম্যান পৃষ্ঠা / ডক্সটি ব্যবহার করতে বা দেখতে পারেন )।

/usr/bin/[ --help সম্পূর্ণ সহায়তার আউটপুট (GNU Coreutils সংস্করণের জন্য) মুদ্রণ করে, যা এর মাধ্যমে শুরু হয়:

$ /usr/bin/[ --help
Usage: test EXPRESSION
  or:  test
  or:  [ EXPRESSION ]
  or:  [ ]
  or:  [ OPTION
Exit with the status determined by EXPRESSION.

      --help     display this help and exit
      --version  output version information and exit

এবং তারপরে এক্সপ্রেসের জন্য অনুমোদিত সিনট্যাক্স বর্ণনা করে।

এটি অন্য একটি উপায় যা আপনি এটি খুঁজে পেতে পারতেন [এবং testএটি সমতুল্য।


বিটিডাব্লু, আপনি যদি বাশের জন্য প্রোগ্রামিং করছেন (বা ইন্টার-ইন্টারেক্টিভভাবে একটি-লাইনার লিখছেন) তবে আমি এর [[পরিবর্তে প্রস্তাব দেব [। এটি বেশ কয়েকটি উপায়ে আরও ভাল, সার্গের উত্তরের লিঙ্কগুলি দেখুন।


2

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

উদাহরণ:

[ hello ]
echo "Exit-status of [ hello ] is:" $?
[ abc = abc ]
echo "Exit-status of [ abc = abc ] is:" $?
[ ]
echo "Exit-status of [ ] is:" $?
[ abc = def ]
echo "Exit-status of [ abc = def ] is:" $?

… আউটপুট হবে:

[হ্যালো] এর প্রস্থান স্থিতি হ'ল: 0       - কারণ খালি খালি স্ট্রিংটিকে 
[abc = abc] এর প্রস্থান স্থিতি হিসাবে বিবেচনা করা হয়: 0   - কারণ 'abc' সত্যই 'abc' এর 
বহির্গমন-অবস্থান হিসাবে [] হয় : 1             - কারণ খালি স্ট্রিংটিকে 
[abc = Def] এর প্রস্থান স্থিতিটিকে মিথ্যা হিসাবে বিবেচনা করা হয়: 1   - কারণ 'abc' সত্যই 'Def' থেকে পৃথক

তবে, বাশ এবং অন্যান্য অনেকগুলি শেল সাধারণত এই ক্ষেত্রে সাধারণত /bin/[(বা /usr/bin/[) অনুরোধ করে না, বরং ঠিক একই আচরণের সাথে বিল্ট-ইন কমান্ড কল করে (নিখুঁত পারফরম্যান্সের কারণে)। অনুরোধ করার জন্য /bin/[(শেল বিল্ট-ইন সার্গেট নয়) আপনাকে অবশ্যই এর পথটি স্পষ্টভাবে নির্দিষ্ট /bin/[ hello ]করতে হবে] (উদাহরণস্বরূপ ; আপনাকে dir নামে pre সহ উপসর্গের দরকার নেই ), অথবা বিল্ট-ইন সার্গেট ব্যবহার না করার জন্য শেলটি কনফিগার করতে হবে (উদাহরণস্বরূপ, enable -n [ইন ব্যাশ)।

পিএস: যেমনটি অন্যান্য উত্তরে বলা হয়েছিল, [সম্পর্কিত test। কিন্তু test, অসদৃশ [, প্রয়োজন হয় না ]তার শেষ আর্গুমেন্ট হিসাবে (এবং এ সব এটা আশা করে না; অতিরিক্ত যোগ ]করতে testআর্গুমেন্ট এটা ত্রুটি বার্তা সহ ব্যর্থ বা ভুল ফলাফল দেখানো হবে কারণ হতে পারে)এবং একই ফাইলে সমাধান করতে পারেন (যেমন এক হয় সিমলিঙ্ক ; এই ক্ষেত্রে আচরণ বেষ্টনী সম্ভবত দ্বারা বাস্তবায়িত হয় বর্তমানে তথাকথিত কমান্ড বিশ্লেষণ মধ্যে / নিজেই কোড) বা বিভিন্ন ফাইল। কারণ শেলটি সাধারণত বিল্ট-ইন সার্গেটেরও আহ্বান করে, যদি না পাথ স্পষ্টভাবে নির্দিষ্ট করা থাকে ( ) বা এটি না করার জন্য এটি কনফিগার করা থাকে (/bin/test/bin/[test[test/bin/testenable -n test)।

পিপিএস: বিপরীতে testএবং [, আধুনিক ifকখনই আসল ফাইল হয় না। এটি শেলের (যেমন বাশ) সিনট্যাক্সের অংশ: if commandA; then commandB; fi(সেমিকোলনের পরিবর্তে নিউলাইনগুলি ব্যবহার করা যেতে পারে) commandBযদি commandAশূন্য স্থিতি সহ প্রস্থান করা হয় এবং কেবল-যদি সম্পাদিত হয় । এটি (বা - কেবলমাত্র কম পাঠযোগ্য) এর মতো তাদের একত্রিত করার অনুমতি দেয় testবা এর আচরণের সাথে পুরোপুরি ফিট করে । যাইহোক, আধুনিক স্ক্রিপ্ট প্রায়ই ব্যবহার পরিবর্তে বা , যা (যেমন ) একটি বাস্তব ফাইল, কিন্তু সবসময় শেল সিনট্যাক্স একটি অংশ হয় না।[if [ "$a" = foo ]; then …; fi if test "$a" = foo; then …; fi[[test[if

পিপিপিএস: যেমন man- manআপনার ফাইল-সিস্টেমে প্রতিটি কমান্ডের উপর কোনও নিবন্ধ থাকার আশা করবেন না । কিছু (এমনকি "বাস্তব", ফাইল ভিত্তিক) কমান্ড উপর তথ্য, অনুপস্থিত থাকতে পারে কিছু শেল বিল্ট-ইন হয়তো উপস্থিত না শুধুমাত্র নির্দিষ্ট শেল নিবেদিত একটি নিবন্ধ মধ্যে (যে জায়গা যেখানে আপনি সবচেয়ে অবশ্যই উপর তথ্য খুঁজবে উপর তথ্য test, [, if, [[)। তবুও, অনেক ডিস্ট্রিবিউশনের কাছে এবং এর manজন্য স্পষ্টত-বিভাগ রয়েছে । (সম্পর্কে , এটি সুস্পষ্ট কারণে স্বীকৃত নয় : এর জন্য চুপচাপ মামলাগুলি পরিচালনা করা দরকার ; কিছু বিতরণে (বন্ধ না করে ) এখনও সহায়তা দেখায়, কিছুতে এটি হয় না))test[--helptesta=--help; test "$a"[ --help]


3
দ্রষ্টব্য যে ifইউনিক্স ভি 6-তে একটি কমান্ড ছিল। ইউনিক্স ভি 7 (1979) বোর্ন শেল (এটির if-then-else-fiনির্মাণের সাথে) এবং নতুন testকমান্ড নিয়ে এসেছিল ।
স্টাফেন চেজেলাস
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.