كيفية تقييم التعبيرات في لينكس باستخدام expr

النقاط الرئيسية

  • يمكن لأمر expr تقييم التعبيرات وإخراج القيمة المقابلة. يمكنك استخدامه لإجراء العمليات الحسابية والمقارنات وعمليات السلسلة.
  • باستخدام الأمر expr، يمكنك البحث عن أنماط محددة في النص، والتحقق من صحة إدخال المستخدم، وحتى استبدال النص استنادًا إلى أنماط محددة.
  • يمكن لأمر expr أيضًا معالجة السلاسل باستخدام وظائف السلاسل مثل العثور على الطول ومقارنة السلاسل واستخراج السلاسل الفرعية.



هل تريد إجراء بعض العمليات الحسابية البسيطة في Linux؟ ما عليك سوى استخدام الأمر expr. يمكن لهذا الأمر إجراء عمليات مختلفة، مثل تقييم التعبيرات واستخراج السلاسل الفرعية ومقارنة السلاسل والمزيد. باستخدام الأمر expr، يمكنك إضافة أو طرح أو ضرب أو قسمة رقمين والحصول على الإجابة كمخرجات.


الأمر expr

expr هي أداة يمكنها إجراء العمليات الحسابية ومعالجة السلاسل استنادًا إلى التعبيرات التي تقدمها. باستخدام الأمر expr، يمكنك إجراء عمليات مختلفة على الأعداد الصحيحة والسلاسل، مثل مقارنة القيم أو العثور على أنماط معينة باستخدام التعبيرات العادية.

يمكنك تمرير تعبيرات متعددة إلى expr كحجج، مفصولة بمسافات. فهو لا يقوم بتقييم تعبير فحسب، بل يعرض أيضًا الناتج المقابل له على المحطة الطرفية. يعمل أمر expr في كل من محطة طرفية Bash ونصوص shell.


يعد الأمر expr مفيدًا عند التعامل مع البيانات أو إجراء العمليات الحسابية دون مغادرة المحطة الطرفية. ومع ذلك، يجب أن تكون حريصًا بشأن بناء الجملة وترتيب التعبيرات، وإلا فسوف يفشل الأمر ويعرض رسالة خطأ.

صيغة الأمر expr هي:

expr expression 

… حيث يمكن أن يكون التعبير عبارة عن مزيج من الحجج والعوامل. على سبيل المثال، يقوم التعبير الموضح أدناه بتقييم العملية بين arg1 وarg2 ويعرض النتيجة:

expr arg1 operator arg2 

يمكن أن تكون الحجج أرقامًا أو سلاسل، حسب المشغل. يمكن أن تكون المشغلات حسابية أو علائقية أو متعلقة بالسلاسل أو منطقية. إنه الرمز الذي يحدد العملية التي يجب إجراؤها. على سبيل المثال، بالنسبة للأعداد الصحيحة، يمكنك استخدام مشغلات مثل + و- و* و/ و%.

بالنسبة للسلاسل، يمكنك استخدام التعبيرات العادية ومجموعات الأحرف للعثور على المطابقات والفهرس. يمكنك أيضًا استخدام الأقواس لتجميع التعبيرات والخطوط المائلة العكسية لتجنب الأحرف الخاصة.


خيارات أمر expr

على الرغم من أن برنامج expr لا يحتوي على خيارات سطر أوامر تقليدية، إلا أنه يوفر مشغلات متعددة الاستخدامات للعمليات الحسابية ومعالجة السلاسل والمقارنة. علاوة على ذلك، يمكنك استخدام –يساعد خيار لإظهار صفحة تعليمات expr، والتي تشرح تركيبها وميزاتها وأمثلة عليها:

expr  
محطة طرفية لينكس مع توثيق الأمر expr

للتحقق من إصدار الأمر expr، قم بتشغيل:

expr  
محطة طرفية لنظام Linux تعرض رقم الإصدار وتفاصيل المطور لأمر expr

يعرض هذا الخيار رقم الإصدار، والرمز المصدر، والترخيص، ومؤلف expr.


إجراء العمليات الحسابية باستخدام expr

لاستخدام الأمر expr في العمليات الحسابية الأساسية، اكتب الأمر expr متبوعًا بمسافة. ثم اكتب التعبير الذي تريد تقييمه. هذا التعبير عبارة عن مزيج من الأعداد الصحيحة والمعاملات مثل + و- و* و/. تأكد من فصل كل رمز (عدد صحيح أو عامل) في التعبير بمسافة.

على سبيل المثال، إذا كنت تريد معرفة مجموع 15 و12 باستخدام expr، يمكنك كتابة:

expr 15 + 12 
محطة طرفية لنظام Linux تُظهر إضافة متغيرين باستخدام الأمر expr

وبالمثل، يمكنك استخدام الأمر expr لإجراء عمليات حسابية أخرى، مثل الطرح والضرب والقسمة. دعنا نقيم بعض التعبيرات باستخدام الأمر expr:

expr 15 - 12
expr 15 \* 5
expr 10 / 2
محطة طرفية لنظام Linux تعرض عمليات حسابية مختلفة باستخدام الأمر expr


يجب عليك الهروب من الضرب

عامل التشغيل باستخدام الشرطة المائلة العكسية (\) لتجنب توسع الغلاف. وإلا، فسوف يحاول الغلاف مطابقة العامل

مع أسماء الملفات الموجودة في الدليل الحالي وتمريرها إلى الأمر expr، مما سيؤدي إلى حدوث خطأ.

expr "5" "*" "3" 
محطة طرفية لينكس بها خطأ في بناء الجملة


يمكنك أيضًا منع shell من تفسير الأحرف عن طريق اقتباس الوسائط والعوامل بشكل صحيح:

محطة طرفية لنظام Linux مع المتغيرات وعلامات الاقتباس للمشغلات مع علامتي اقتباس مزدوجتين

مقارنة تعبيرين باستخدام expr

expr 40 = 50 
<img width="748" height="75" loading="lazy" decoding="async" alt="لمقارنة تعبيرين باستخدام الأمر expr، يمكنك استخدام عوامل منطقية مثل = و و!=. إذا رأيت ناتج الأمر يساوي واحدًا، فإن الشرط صحيح، وإلا فهو خاطئ، والقيمة التي يتم إرجاعها هي صفر.” data-img-url=”https://static1.howtogeekimages.com/wordpress/wp-content/uploads/2024/01/6-8.png” src=”https://static1.howtogeekimages.com/wordpress/wp-content/uploads/2024/01/6-8.png” style=”display:block;height:auto;max-width:100%;”/>

على سبيل المثال، للتحقق مما إذا كانت الحجة الأولى تساوي الحجة الثانية، نستخدم عامل =:

expr 40 \< 50 
محطة طرفية لنظام Linux تعرض التحقق من مساواة الرقمين باستخدام الأمر expr


الآن، دعنا نتحقق مما إذا كانت الحجة الأولى أصغر من الحجة الأخرى. لذلك، نستخدم عامل <:

expr 45 \!= 55 
محطة طرفية لنظام Linux تعرض أوامر للتحقق من المتغير الأصغر باستخدام الأمر expr مع عامل less than

يمكنك أيضًا التحقق مما إذا كانت القيم غير متساوية. للقيام بذلك، ما عليك سوى استخدام عامل != بين قيمتي الوسيطتين:

محطة طرفية لنظام Linux تعرض مقارنة بين قيمتين باستخدام الأمر expr مع عامل not equal to

هنا، يشير الناتج 1 إلى أن 45 لا يساوي 55.

بهذه الطريقة، يوفر الأمر expr طريقة بسيطة وفعالة لمقارنة القيم العددية.

مثل الضرب


المشغل، يجب أيضًا الإفلات من المشغلات ، و!= باستخدام الشرطة المائلة العكسية (\). وإلا، فقد يتم تفسيرها كأحرف خاصة بواسطة shell.

expr length 'How To Geek' 
إيجاد طول السلسلة باستخدام expr

للعثور على طول سلسلة باستخدام الأمر expr، يمكنك استخدام طريقة length. سيعيد هذا العامل عدد الأحرف الموجودة في السلسلة المعطاة إلى الناتج.

expr length "$(echo 'How To Geek' | tr -d ' ')" 
1725030233 253 كيفية تقييم التعبيرات في لينكس باستخدام

محطة طرفية لنظام Linux تُظهر الطول باستخدام الأمر expr مع عامل الطول


النتيجة هي 11 لأن السلسلة تحتوي على تسعة أحرف ومسافتين فارغتين. إذا كنت تريد معرفة طول السلسلة بدون مسافات فارغة، يمكنك استخدام أوامر أخرى مثل tr أو awk لإزالتها أولاً. على سبيل المثال:

محطة طرفية لنظام Linux تعرض طول السلسلة دون تضمين المسافات البيضاء

سيكون الناتج هو تسعة لأن الأمر tr يحذف جميع المسافات الموجودة في السلسلة قبل تمريرها إلى الأمر expr length.

expr string1 : string2 

مطابقة سلسلتين باستخدام expr

إحدى العمليات التي يوفرها الأمر expr هي مقارنة سلسلتين. للقيام بذلك، استخدم عامل النقطتين (:) مع الأمر expr. يعيد هذا العامل عدد الأحرف التي تتطابق في بداية السلسلتين.

expr 'HowToGeek' : 'HowTo' 
الصيغة المستخدمة لاستخدام هذا المشغل هي:

يقوم هذا بمقارنة السلسلتين وإرجاع عدد الأحرف المتطابقة من بداية السلسلة.


expr 'How To Geek' : 'How To Geek' 
على سبيل المثال، سيقوم الأمر أدناه بإخراج خمسة أحرف، حيث أن كلا السلسلتين لديهما الأحرف الخمسة الأولى المشتركة:

محطة طرفية لنظام Linux تُظهر مطابقة سلسلتين مختلفتين باستخدام الأمر expr

فكر في مثال آخر، حيث تكون سلسلتان معطاتان متماثلتين:

expr 'How To Geek' : 'Linux' 
محطة طرفية لنظام Linux تُظهر مطابقة سلسلتين متماثلتين باستخدام الأمر expr

النتيجة هي 11 حيث أن كلا السلسلتين لديهما جميع الأحرف المشتركة، بما في ذلك المسافات البيضاء.

إذا لم يكن هناك حرف مطابق موجود، فسيكون الناتج صفرًا:

يعرض لك محطة Linux كيفية مطابقة متغيرات السلسلة المختلفة باستخدام الأمر expr


a=20
a=`expr $a + 1`
echo $a
زيادة ونقصان متغير باستخدام expr

يمكن لأمر expr أيضًا تقييم تعبير يزيد وينقص قيمة المتغير. علاوة على ذلك، يمكنك تعيين النتيجة إلى متغير جديد.

a=20
a=`expr $a - 1`
echo $a
1725030234 808 كيفية تقييم التعبيرات في لينكس باستخدام

يعرض محطة Linux استخدام أمر expr لزيادة قيمة المتغير بمقدار 1


وبالمثل، لتقليل قيمة المتغير، استخدم نفس بناء الجملة ولكن استبدل علامة الجمع بعلامة الطرح:

a=HowToGeek
b=`expr substr $a 2 5`
echo $b
يعرض محطة Linux استخدام أمر expr لتقليل قيمة المتغير بمقدار 1

لاستخراج سلسلة فرعية من سلسلة معينة، يمكنك استخدام الأمر expr مع عامل substr. بهذه الطريقة، يمكنك استخراج معلومات محددة من نص أكبر، مثل الاسم أو التاريخ أو أي رمز. يمكنك أيضًا استخدام هذا العامل لإزالة الأحرف أو المسافات غير المرغوب فيها من السلسلة.

فكر في أوامر المثال التالية، حيث يتم تهيئة سلسلة جديدة. بعد ذلك، باستخدام الأمر expr، سنحصل على الأحرف من الثاني إلى الخامس من السلسلة “HowToGeek”:

يعرض محطة Linux استخدام الأمر expr مع خيار substr لاستخراج سلسلة فرعية


echo "Enter two numbers"
read a
read b
sum=`expr $a + $b`
echo "Sum of two numbers is= $sum"
تنفيذ عمليات التعبير باستخدام نص برمجي Shell

لأتمتة معالجة التعبيرات باستخدام الأمر expr، يمكنك إنشاء نص برمجي مخصص. النصوص البرمجية هي أدوات متعددة الأغراض يمكنها مساعدتك في إنجاز المزيد بموارد أقل. باستخدام النصوص البرمجية، يمكنك أتمتة المهام المتكررة، ومعالجة البيانات، وإجراء حسابات معقدة.

على سبيل المثال، يمكنك إنشاء نص برمجي لإضافة رقمين باستخدام الأمر expr. أولاً، تحتاج إلى إنشاء ملف بامتداد “.sh”، مثل “my_script.sh”. يخبر هذا shell بأنه ملف نص برمجي. بعد ذلك، تحتاج إلى كتابة كود يمكنه أخذ رقمين كمدخلات وإخراج مجموعهما. فيما يلي نص برمجي نموذجي يمكنه القيام بذلك:

chmod +x my_script.sh 

ملف نصي Bash يحتوي على نص إضافة رقمين

./my_script.sh 
1725030234 500 كيفية تقييم التعبيرات في لينكس باستخدام


بعد ذلك، لجعل هذا البرنامج النصي قابلاً للتنفيذ، قم بتشغيل الأمر chmod:

الآن، قم بتنفيذ البرنامج النصي عن طريق تشغيل:

محطة طرفية لنظام Linux تعرض تنفيذ ملف نصي bash وتعرض الناتج

سيُطلب منك إدخال رقمين. بعد إدخال الرقمين، سترى أن البرنامج النصي سيعرض مجموع الرقمين على الشاشة. يمكنك أيضًا تعديل البرنامج النصي لإجراء عمليات أو مهام أخرى وفقًا لاحتياجاتك.

جرب بعض أوامر Linux البديلةتركز هذه المقالة بشكل أساسي على الأمر expr، ولكن يمكنك أيضًا تجربة بعض الأوامر الأخرى لعمليات مختلفة. تتضمن هذه الأوامر permite advertise وlet وbc. يمكن لجميع أدوات سطر الأوامر هذه إجراء عمليات حسابية بسيطة إلى معقدة على قيم محددة.يمكن لأمر التصريح إنشاء وتعديل المتغيرات وسماتها. وعلى نحو مماثل، يقوم أمر let بتقييم التعبيرات الحسابية على متغيرات shell. وأخيرًا، يعد bc آلة حاسبة لسطر الأوامر تدعم العمليات الحسابية الدقيقة ووظائف الرياضيات المتنوعة. كما يمكنه تحليل لغة برمجة نصية تدعم الحلقات والعبارات الشرطية والمتغيرات.

أضف تعليق