النقاط الرئيسية
- يمكن لأمر 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.
إجراء العمليات الحسابية باستخدام expr
لاستخدام الأمر expr في العمليات الحسابية الأساسية، اكتب الأمر expr متبوعًا بمسافة. ثم اكتب التعبير الذي تريد تقييمه. هذا التعبير عبارة عن مزيج من الأعداد الصحيحة والمعاملات مثل + و- و* و/. تأكد من فصل كل رمز (عدد صحيح أو عامل) في التعبير بمسافة.
على سبيل المثال، إذا كنت تريد معرفة مجموع 15 و12 باستخدام expr، يمكنك كتابة:
expr 15 + 12
وبالمثل، يمكنك استخدام الأمر expr لإجراء عمليات حسابية أخرى، مثل الطرح والضرب والقسمة. دعنا نقيم بعض التعبيرات باستخدام الأمر expr:
expr 15 - 12
expr 15 \* 5
expr 10 / 2
يجب عليك الهروب من الضرب
مع أسماء الملفات الموجودة في الدليل الحالي وتمريرها إلى الأمر expr، مما سيؤدي إلى حدوث خطأ.
expr "5" "*" "3"
يمكنك أيضًا منع shell من تفسير الأحرف عن طريق اقتباس الوسائط والعوامل بشكل صحيح:
محطة طرفية لنظام Linux مع المتغيرات وعلامات الاقتباس للمشغلات مع علامتي اقتباس مزدوجتين
مقارنة تعبيرين باستخدام expr
expr 40 = 50
على سبيل المثال، للتحقق مما إذا كانت الحجة الأولى تساوي الحجة الثانية، نستخدم عامل =:
expr 40 \< 50
الآن، دعنا نتحقق مما إذا كانت الحجة الأولى أصغر من الحجة الأخرى. لذلك، نستخدم عامل <:
expr 45 \!= 55
يمكنك أيضًا التحقق مما إذا كانت القيم غير متساوية. للقيام بذلك، ما عليك سوى استخدام عامل != بين قيمتي الوسيطتين:
محطة طرفية لنظام Linux تعرض مقارنة بين قيمتين باستخدام الأمر expr مع عامل not equal to
هنا، يشير الناتج 1 إلى أن 45 لا يساوي 55.
بهذه الطريقة، يوفر الأمر expr طريقة بسيطة وفعالة لمقارنة القيم العددية.
مثل الضرب
المشغل، يجب أيضًا الإفلات من المشغلات ، و!= باستخدام الشرطة المائلة العكسية (\). وإلا، فقد يتم تفسيرها كأحرف خاصة بواسطة shell.
expr length 'How To Geek'
للعثور على طول سلسلة باستخدام الأمر expr، يمكنك استخدام طريقة length. سيعيد هذا العامل عدد الأحرف الموجودة في السلسلة المعطاة إلى الناتج.
expr length "$(echo 'How To Geek' | tr -d ' ')"
محطة طرفية لنظام 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'
النتيجة هي 11 حيث أن كلا السلسلتين لديهما جميع الأحرف المشتركة، بما في ذلك المسافات البيضاء.
إذا لم يكن هناك حرف مطابق موجود، فسيكون الناتج صفرًا:
يعرض لك محطة Linux كيفية مطابقة متغيرات السلسلة المختلفة باستخدام الأمر expr
a=20
a=`expr $a + 1`
echo $a
يمكن لأمر expr أيضًا تقييم تعبير يزيد وينقص قيمة المتغير. علاوة على ذلك، يمكنك تعيين النتيجة إلى متغير جديد.
a=20
a=`expr $a - 1`
echo $a
يعرض محطة Linux استخدام أمر expr لزيادة قيمة المتغير بمقدار 1
وبالمثل، لتقليل قيمة المتغير، استخدم نفس بناء الجملة ولكن استبدل علامة الجمع بعلامة الطرح:
a=HowToGeek
b=`expr substr $a 2 5`
echo $b
لاستخراج سلسلة فرعية من سلسلة معينة، يمكنك استخدام الأمر 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"
لأتمتة معالجة التعبيرات باستخدام الأمر expr، يمكنك إنشاء نص برمجي مخصص. النصوص البرمجية هي أدوات متعددة الأغراض يمكنها مساعدتك في إنجاز المزيد بموارد أقل. باستخدام النصوص البرمجية، يمكنك أتمتة المهام المتكررة، ومعالجة البيانات، وإجراء حسابات معقدة.
على سبيل المثال، يمكنك إنشاء نص برمجي لإضافة رقمين باستخدام الأمر expr. أولاً، تحتاج إلى إنشاء ملف بامتداد “.sh”، مثل “my_script.sh”. يخبر هذا shell بأنه ملف نص برمجي. بعد ذلك، تحتاج إلى كتابة كود يمكنه أخذ رقمين كمدخلات وإخراج مجموعهما. فيما يلي نص برمجي نموذجي يمكنه القيام بذلك:
chmod +x my_script.sh
ملف نصي Bash يحتوي على نص إضافة رقمين
./my_script.sh
بعد ذلك، لجعل هذا البرنامج النصي قابلاً للتنفيذ، قم بتشغيل الأمر chmod:
الآن، قم بتنفيذ البرنامج النصي عن طريق تشغيل:
محطة طرفية لنظام Linux تعرض تنفيذ ملف نصي bash وتعرض الناتج
سيُطلب منك إدخال رقمين. بعد إدخال الرقمين، سترى أن البرنامج النصي سيعرض مجموع الرقمين على الشاشة. يمكنك أيضًا تعديل البرنامج النصي لإجراء عمليات أو مهام أخرى وفقًا لاحتياجاتك.
جرب بعض أوامر Linux البديلةتركز هذه المقالة بشكل أساسي على الأمر expr، ولكن يمكنك أيضًا تجربة بعض الأوامر الأخرى لعمليات مختلفة. تتضمن هذه الأوامر permite advertise وlet وbc. يمكن لجميع أدوات سطر الأوامر هذه إجراء عمليات حسابية بسيطة إلى معقدة على قيم محددة.يمكن لأمر التصريح إنشاء وتعديل المتغيرات وسماتها. وعلى نحو مماثل، يقوم أمر let بتقييم التعبيرات الحسابية على متغيرات shell. وأخيرًا، يعد bc آلة حاسبة لسطر الأوامر تدعم العمليات الحسابية الدقيقة ووظائف الرياضيات المتنوعة. كما يمكنه تحليل لغة برمجة نصية تدعم الحلقات والعبارات الشرطية والمتغيرات.