`টেস্ট` এবং` [`- বিভিন্ন বাইনারি, কোনও পার্থক্য?


13

আমি অন্য একটি প্রশ্নের উত্তর দেওয়ার সময় লক্ষ্য করেছিলাম যে testএবং [এটি ভিন্ন বাইনারি, তবে [ম্যানপেজটি টান দেয় test। শেষ হওয়ার প্রয়োজনীয়তা ছাড়াও ]কি কোনও পার্থক্য রয়েছে? যদি তা না হয় তবে কেন তারা সিমলিংকের পরিবর্তে আলাদা বাইনারি থাকে? (এগুলিও bashবিল্টিনস, এবং bashকোনও পার্থক্যও দেখায় না))

উত্তর:


4

সোর্স কোড হচ্ছে এটা কিভাবে পরিচালনা যেমন পার্থক্য ব্যাখ্যা করে --helpবিকল্প।

  /* Recognize --help or --version, but only when invoked in the
     "[" form, when the last argument is not "]".  Use direct
     parsing, rather than parse_long_options, to avoid accepting
     abbreviations.  POSIX allows "[ --help" and "[ --version" to
     have the usual GNU behavior, but it requires "test --help"
     and "test --version" to exit silently with status 0.  */

প্রদর্শক

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

ইন bashbuiltin সংস্করণ, শুধু পার্থক্য হল [প্রয়োজন ], শেষে হিসাবে আপনি বলেন।


1
আকর্ষণীয়, যদিও বেশিরভাগ প্রোগ্রাম একটি সিমলিংকের সাহায্যে একই আচরণ অর্জন করে।
কেভিন

1
তারা আমার সিস্টেমে একই ইনোডের হার্ডলিঙ্কস। এই ওভার সিমলিংকের সুবিধা হ'ল যদি সিমিলিংক লক্ষ্যটি সরিয়ে বা সরানো হয়ে যায় তবে সিমলিংক আর কাজ করে না। যদি একটি ইনোডের হার্ডলিঙ্কগুলির মধ্যে একটি সরানো বা সরিয়ে নেওয়া হয়, সমস্ত হার্ডলিঙ্কগুলি কাজ চালিয়ে যায়।
কেউ নেই

5

সাধারণত, তারা হার্ড লিঙ্কগুলির সাথে একই বাইনারি। শেল উপর নির্ভর করে, একটি অভ্যন্তরীণ বাস্তবায়ন বাইনারি পরিবর্তে পরীক্ষা testএবং [পরীক্ষা করা যেতে পারে । প্রক্রিয়া spawning এর ক্ষেত্রে এটি আরও কার্যকর, এবং বাইনারি প্রোগ্রামের চেয়ে বিভিন্ন বিকল্প সরবরাহ করতে পারে test

কল বিন্যাসে পার্থক্য বাদে, তারা উভয়ই একই কার্যকারিতা সরবরাহ করে।


7
আশ্চর্যজনকভাবে যথেষ্ট, দেবিয়ান কোর্টিলগুলিতে তারা একই বাইনারি নয়। একই উত্সটি দু'বার সংকলিত হয়েছে, একটি PROGRAM_NAME কে "পরীক্ষা" হিসাবে সংজ্ঞায়িত করে এবং অন্যটি "[" হিসাবে এটি সংজ্ঞায়িত করে এবং কিছু অতিরিক্ত কোড দিয়ে পরীক্ষা করে পরীক্ষা করে থাকে যে "]" দিয়ে অভিব্যক্তিটি শেষ হয়। o_O
এঙ্গাস

3
@angus এর আর একটি উদাহরণ হল ls / dir / vdir। কোর্টিলগুলি মনে হয় রানটাইমের সময় আরগভি [0] পরীক্ষার চেয়ে বিভিন্ন হার্ডকোডযুক্ত বাইনারি তৈরি করা পছন্দ করে।
র্যান্ডম 832
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.