دعونا نتحدث عن المتغيرات. عندما تتعلم البرمجة بأي لغة، ستكون المتغيرات موجودة دائمًا.
في هذا البرنامج التعليمي، سوف نقدم لك عالم البرمجة النصية باستخدام ZSH من خلال تعلم كل ما يمكن تعلمه حول المتغيرات. يتضمن هذا البرنامج التعليمي استخدام المتغير ومعالجة المتغير المشترك.
تعريف متغير
في ZSH، المتغيرات هي وحدات تخزين البيانات التي تسمح لنا بتخزين البيانات ومعالجتها خلال عمر البرنامج النصي.
التشبيه الشائع هو أنها تشبه الحاويات التي تسمح لنا بتخزين المعلومات مثل النصوص والأرقام والتسلسلات والمزيد.
إعلان متغير
قبل أن تتمكن من استخدام متغير في البرنامج النصي. يجب عليك التأكد من أنك أعلنت عن متغير.
يشير إعلان المتغير إلى عملية تحديد الاسم ونوع بيانات المتغير والقيمة الأولية التي يحتفظ بها.
في ZSH، يمكننا أن نعلن عن متغير ضمنا أو صراحة. يتطلب الإعلان الصريح تحديد نوع البيانات المخزنة بواسطة المتغير بينما يتطلب الإعلان الضمني اسم المتغير فقط. يمكن للمترجم بعد ذلك استنتاج نوع بيانات المتغير عند استخدامه.
وفيما يلي بيان التصريح الصريح والضمني:
تنضيد -أنا على واحد = 30تحية = 'مرحبًا'
يشير الأمر الأول إلى الإعلان الصريح، بينما يشير الأمر الثاني إلى الإعلان الضمني.
يمكنك تعيين قيمة لمتغير ببساطة عن طريق استخدام عامل التشغيل '=' أثناء الإعلان كما يلي:
في = 'مرحبا بالعالم'يمكننا أيضًا توفير القيم الافتراضية للمتغيرات باستخدام بناء الجملة ${var:-default}.
مدينة = ' ${user_location:-نيويورك} 'كما ذكرنا سابقًا، يمكننا تحديد نوع المتغير بشكل واضح باستخدام أمر 'typeset'.
تنضيد -أنا أ = 25 # متغير صحيحتنضيد -أ dbs = ( 'ماي إس كيو إل' 'بوستغريسكل' 'سكليتي' ) #متغير المصفوفة
اصطلاحات التسمية المتغيرة
عند تسمية المتغيرات يجب الالتزام بالقواعد التالية لتجنب الخطأ النحوي من قبل مترجم ZSH:
- يجب أن تتكون أسماء المتغيرات من أحرف وأرقام وشرطات سفلية.
- يجب أن تبدأ بحرف أو شرطة سفلية.
- تجنب استخدام الأحرف الخاصة مثل '$' أو '*' أو المسافات في أسماء المتغيرات.
أنواع المتغيرات في ZSH
هناك أنواع مختلفة من المتغيرات التي يدعمها ZSH. يتم استخدام كل نوع متغير لتخزين نوع معين من البيانات مثل الأرقام والسلاسل والمصفوفات وما إلى ذلك.
1. متغيرات السلسلة
يتم استخدام متغيرات السلسلة لتخزين البيانات النصية. في ZSH، نقوم بإحاطة متغيرات السلسلة بعلامات اقتباس مفردة أو مزدوجة كما هو موضح في ما يلي:
كان = 'مرحبًا'var2 = 'مرحبا بالعالم!'
يمثل كلا المتغيرين السابقين أنواع بيانات السلسلة الصالحة.
2. الأعداد الصحيحة
من ناحية أخرى، يتم استخدام المتغيرات الصحيحة لتخزين القيم الرقمية. لا يتطلب هذا النوع من القيم تضمينها بين علامتي اقتباس. ومع ذلك، يجب أن تكون قيمًا عددية.
س = 423. متغيرات الصفيف
متغيرات المصفوفة هي نوع تسلسلي يُستخدم للاحتفاظ بقوائم القيم. نعلن عن مصفوفة باستخدام زوج من الأقواس. على عكس السلاسل والأعداد الصحيحة، يمكن للمصفوفات تخزين الأنواع المختلطة مثل السلاسل والأعداد الصحيحة بنفس القيمة.
مثال على النحو التالي:
Connection_values = ( 'ماي إس كيو إل' 'بوستغريسكل' , 3306 , 5049 )التوسع المتغير
يتيح لنا توسيع المتغير، المعروف أيضًا باسم استبدال المتغير، استبدال اسم المتغير بالقيمة المقابلة له داخل سلسلة أو أمر.
يمكّننا التوسع المتغير من دمج محتويات المتغيرات ديناميكيًا في الكود. في البرمجة النصية ZSH، يعد توسيع المتغير طريقة للوصول إلى القيم المخزنة في المتغيرات واستخدامها.
1. التوسع المتغير البسيط
يستخدم النوع الأكثر شيوعًا لتوسيع المتغير الرمز '$' للوصول إلى قيمة المتغير.
مثال على النحو التالي:
صدى صوت 'مرحبًا، اسم $ '2. توسيع المعلمة
يسمح توسيع المعلمة بعمليات متغيرة أكثر تعقيدًا كما هو موضح في المثال التالي:
طول = ${#اسم}سلسلة فرعية = ${الاسم:0:3}
المثال الأول يحصل على طول السلسلة بينما والثاني يحصل على السلسلة الفرعية المحددة باستخدام الفهرسة.
< h2 > 3 . التوسع الحسابي h2 >
وأخيرًا، لدينا المفكوك الحسابي أيّ يسمح لنا بإجراء العمليات الحسابية داخل الأقواس المزدوجة.
[ نسخة فقط = 'سحق' عرض = '100%' ارتفاع = '100%' هرب = 'حقيقي' سمة = 'بلاك بورد' com.nowrap = '0' ] س = 5
و = 3
الدقة =$ ( ( س + ص ) )
التلاعب المتغير
دعنا ننتقل إلى القسم التالي حيث نتعرف على معالجة المتغيرات. ابدأ بالتلاعب بالمتغيرات الأكثر شيوعًا
1. التلاعب بالسلسلة
يوفر ZSH العديد من إمكانيات معالجة السلسلة مثل تسلسل السلسلة. مثال على تسلسل السلسلة كما يلي:
عنوان = ' ${اسم المضيف } ${:منفذ } 'عملية معالجة السلسلة التالية هي استبدال السلسلة:
تحية = ${تحية//العالم/الكون}2. التلاعب بالمصفوفة
المصفوفات هي مجال آخر حيث تواجه تنفيذ عمليات مختلفة. في المصفوفات، لدينا تقنيات تخزين ومعالجة مختلفة مثل:
إضافة عنصر إلى مصفوفة:
قواعد البيانات+= ( 'البحث المرن' )الوصول إلى عناصر المصفوفة:
صدى صوت '1: ${قواعد البيانات[0]} 'عمليات حسابية
يمكنك إجراء عمليات حسابية مختلفة على الأعداد الصحيحة مثل:
إضافة القيم:
نتيجة =$ ( ( أ + ب ) )يمكنك فقط استبدال العلامة الحسابية لإجراء عمليات أخرى مثل الطرح والضرب والقسمة.
التقنيات المتغيرة المتقدمة في ZSH
هناك بعض العمليات المتغيرة المتقدمة التي ستواجهها فقط في حالات استخدام محددة.
على سبيل المثال، يتيح لنا تعيين المتغير الشرطي تعيين القيم بشكل مشروط بناءً على الشروط.
مثال على النحو التالي:
وضع = ' ${debug_mode:-false} 'في هذه الحالة، إذا كان 'debug_mode' يحتوي على قيمة غير فارغة، فسيتم تعيين الوضع بقيمة 'debug_mode'.
على سبيل المثال، إذا كان 'debug_mode = true'، فسيتم ضبط الوضع أيضًا على 'true'.
إذا لم يتم تعريف 'debug_mode' أو كان فارغًا، فسيتم تعيين الوضع بالقيمة الافتراضية وهي 'خطأ'.
1. النطاق المتغير
ميزة أخرى قد ترغب في معرفتها حول المتغيرات هي النطاق المتغير. يشير النطاق إلى المنطقة التي يمكن الوصول إلى المتغير فيها.
على سبيل المثال، إذا تم تعريف متغير خارج حلقة أو وظيفة أو كتلة شرطية، فيقال أن له نطاقًا عالميًا ويمكن الوصول إليه من خلال البرنامج النصي بأكمله.
النوع التالي من النطاق هو النطاق المحلي الذي يحد من إمكانية الوصول إلى المتغيرات التي تم تعريفها داخل حلقة أو وظيفة أو كتلة شرطية لتلك الكتلة فقط.
كان = 'أنا عالمي'func ( ) {
محلي local_var = 'أنا محلي'
}
يوضح المثال نطاقات المتغير العالمية والمحلية.
2. المتغيرات الخاصة
لدينا أيضًا متغيرات خاصة مقدمة للاستخدام بواسطة ZSH. هذه متغيرات لها معنى خاص عند استخدامها في غلاف ZSH.
وهي تشمل ما يلي:
$ 0 , 1 دولار ، و $#لتمثيل وسيطات البرنامج النصي، مثال الاستخدام كما يلي:
script_name = '$0'first_argument = '$1'
الوسيطة_العدد = '$#'
3. التعقيم المتغير
عند التعامل مع مدخلات المستخدم، من الجيد تطهير المدخلات لمنع ناقلات الهجوم مثل حقن التعليمات البرمجية.
مثال على النحو التالي:
إدخال المستخدم =$ ( عقم ' $user_input ' )4. تصحيح المتغير
يمكنك استخدام الأمر 'set –x' لتصحيح وتتبع التعيينات والقيم المتغيرة.
تعيين -xها أنت ذا!
خاتمة
في هذا البرنامج التعليمي، واجهت أحد البرامج التعليمية الأكثر شمولاً حول المتغيرات في ZSH. يغطي هذا البرنامج التعليمي كل شيء بدءًا من الإعلان وحتى تصحيح أخطاء المتغيرات وكل شيء بينهما. سينقلك هذا البرنامج التعليمي بالتأكيد إلى المستوى التالي عندما يتعلق الأمر بالبرمجة النصية باستخدام ZSH.