it-swarm.dev

ماذا يعني "-ne" في باش؟

ماذا يعني الأمر "-ne" في البرنامج النصي bash؟

على سبيل المثال ، ماذا يفعل السطر التالي من نص bash؟

[ $RESULT -ne 0 ] 
42
ZenBalance

هذا أحد الأشياء التي يصعب البحث عنها إذا كنت لا تعرف من أين تبحث بالفعل.

[ هو في الواقع أمر ، وليس جزءًا من بناء جملة Shell bash كما قد تتوقع. يحدث أن يكون أمر Bash مضمنًا ، لذلك تم توثيقه في دليل Bash.

هناك أيضًا أمر خارجي يقوم بنفس الشيء ؛ في العديد من الأنظمة ، يتم توفيرها بواسطة GNU حزمة Coreutils.

[ مكافئ للأمر test ، إلا أن [ يتطلب ] كوسيطة أخير لها ، و test لا.

على افتراض أن وثائق bash مثبتة على نظامك ، إذا كتبت info bash وابحثت عن 'test' أو '[' (الفواصل العليا هي جزء من البحث) ، ستجد وثائق للأمر [ ، المعروف أيضًا باسم test الأمر. إذا كنت تستخدم man bash بدلاً من info bash ، فابحث عن ^ *test (Word test في بداية السطر ، بعد عدد من المسافات).

بعد الإشارة إلى "التعبيرات الشرطية Bash" ستقودك إلى وصف -ne ، وهو عامل عدم المساواة الرقمي ("ne" تعني "غير متساوية). وعلى النقيض من ذلك ، != هي السلسلة عامل عدم المساواة .

يمكنك أيضًا العثور على وثائق bash على الويب.

تعريف المسؤول للأمر test هو معيار POSIX (الذي يجب أن يتوافق تطبيق bash معه بشكل معقول ، ربما مع بعض الامتدادات) .

64
Keith Thompson

"ليست متساوية" لذا في هذه الحالة ، يتم اختبار $RESULT بحيث لا تساوي الصفر.

ومع ذلك ، يتم الاختبار رقميًا ، وليس أبجديًا:

n1 -ne n2     True if the integers n1 and n2 are not algebraically equal.

مقارنة ب:

s1 != s2      True if the strings s1 and s2 are not identical.
34
Omegaman