البرمجة

كيفية التحقق من قيمة متغير في سكربت الباش

عند استخدام الشرط (( "$continue" == "yes" )) في سكربت الباش، تحاول تقييم متغير $continue كعبارة رياضية، وليس كسلسلة نصية. لذلك، حتى لو كتبت الجواب بالصيغة الصحيحة “yes”، فإنه سيعتبر الشرط خطأ، مما يؤدي إلى تنفيذ الفرع الأخير من الشرطية (else) دائمًا.

لحل هذه المشكلة، يمكنك استخدام العملية المقارنة == داخل سلسلة نصية عادية، كما يلي:

bash
#!/bin/bash echo "You are about to deploy the site from STAGING to PRODUCTION, Are you sure? yes/no "; read continue if [ "$continue" == "yes" ] ; then echo "Yes" else echo "No" fi

بهذه الطريقة، يتم مقارنة قيمة المتغير $continue كسلسلة نصية مع القيمة “yes”، وسيتم تنفيذ الفرع الصحيح من الشرطية بشكل صحيح.

المزيد من المعلومات

تأكد أولاً من أن ملف السكربت لديك له صلاحية التنفيذ. يمكنك إعطاء الصلاحية باستخدام الأمر التالي:

bash
chmod +x script.sh

ثم، تأكد من أن الإدخال الذي تقوم بإدخاله بعد السؤال هو “yes” أو “no” بالضبط، بدون أي أحرف إضافية أو فراغات. إذا كنت تقوم بإدخال “yes” بالضبط ولا يتم دخول فرع الـ else، فقد يكون هناك مشكلة أخرى.

يمكنك تشغيل السكربت باستخدام bash -x script.sh لعرض نتائج التنفيذ بالتفصيل، وربما يساعد ذلك في تحديد المشكلة.

مقالات ذات صلة

زر الذهاب إلى الأعلى
إغلاق

أنت تستخدم إضافة Adblock

يرجى تعطيل مانع الإعلانات حيث أن موقعنا غير مزعج ولا بأس من عرض الأعلانات لك فهي تعتبر كمصدر دخل لنا و دعم مقدم منك لنا لنستمر في تقديم المحتوى المناسب و المفيد لك فلا تبخل بدعمنا عزيزي الزائر