OnWorks Linux و Windows Online WorkStations

الشعار

استضافة مجانية على الإنترنت لمحطات العمل

<السابق | المحتويات | التالي>

المتغيرات والثوابت

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



#! / بن / باش


# برنامج لإخراج صفحة معلومات النظام


title = "تقرير معلومات النظام"


صدى صوت "

العنوان

العنوان

"

#! / بن / باش


# برنامج لإخراج صفحة معلومات النظام


title = "تقرير معلومات النظام"


صدى صوت "

العنوان

العنوان

"


عن طريق إنشاء متغير عين لقب ومن خلال تخصيصها للقيمة "System Information Re-Port" ، يمكننا الاستفادة من توسيع المعلمة ووضع السلسلة في مواقع متعددة.

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


[me @ linuxbox ~] $ foo = "نعم" [me @ linuxbox ~] $ صدى $ فو نعم فعلا

[me @ linuxbox ~] $ صدى $ أحمق


[me @ linuxbox ~] $

[me @ linuxbox ~] $ foo = "نعم" [me @ linuxbox ~] $ صدى $ فو نعم فعلا

[me @ linuxbox ~] $ صدى $ أحمق


[me @ linuxbox ~] $


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



[me @ linuxbox ~] $ echo $ foo

[me @ linuxbox ~] $ echo $ foo


يخضع لتوسيع المعلمة وينتج عنه:



[لي @ لينوكس بوكس ​​~] $ صدى نعم

[لي @ لينوكس بوكس ​​~] $ صدى نعم


حيث أن الأمر:



[me @ linuxbox ~] $ echo $ fool

[me @ linuxbox ~] $ echo $ fool


يتوسع إلى:



[لي @ لينوكس بوكس ​​~] $ صدى

[لي @ لينوكس بوكس ​​~] $ صدى


يتوسع المتغير الفارغ إلى لا شيء! يمكن أن يؤدي هذا إلى إحداث فوضى في الأوامر التي تتطلب حججًا. هذا مثال:



[me @ linuxbox ~] $ foo = foo.txt [me @ linuxbox ~] $ foo1 = foo1.txt [me @ linuxbox ~] $ cp $ foo $ fool

cp: معامل ملف الوجهة مفقود بعد "foo.txt"

[me @ linuxbox ~] $ foo = foo.txt [me @ linuxbox ~] $ foo1 = foo1.txt [me @ linuxbox ~] $ cp $ foo $ fool

cp: معامل ملف الوجهة مفقود بعد "foo.txt"


جرب cp --help لمزيد من المعلومات.

جرب cp --help لمزيد من المعلومات.


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

هناك بعض القواعد حول أسماء المتغيرات:

1. قد تتكون أسماء المتغيرات من أحرف أبجدية رقمية (أحرف وأرقام) وشرطة سفلية.

2. يجب أن يكون الحرف الأول من اسم المتغير إما حرفًا أو شرطة سفلية.

3. غير مسموح بالمسافات ورموز الترقيم.

تشير كلمة "متغير" إلى قيمة تتغير ، وفي العديد من التطبيقات ، يتم استخدام المتغيرات بهذه الطريقة. ومع ذلك ، فإن المتغير في تطبيقنا ، لقب، كملف ثابت. الثابت هو مثل المتغير من حيث أن له اسمًا ويحتوي على قيمة. الفرق هو أن قيمة الثابت لا تتغير. في تطبيق يقوم بإجراء حسابات هندسية ، قد نحدد PI باعتباره ثابتًا ، وخصص له قيمة 3.1415، بدلاً من استخدام الرقم حرفياً في جميع أنحاء برنامجنا. لا يميز الغلاف بين المتغيرات والثوابت ؛ هم في الغالب لراحة المبرمج. من الاصطلاحات الشائعة استخدام الأحرف الكبيرة لتعيين الثوابت والأحرف الصغيرة للمتغيرات الحقيقية. سنقوم بتعديل البرنامج النصي الخاص بنا ليتوافق مع هذه الاتفاقية:



#! / بن / باش

# برنامج لإخراج صفحة معلومات النظام TITLE= "تقرير معلومات النظام لـ $ HOSTNAME" صدى صوت "

$TITLE

$TITLE

"

#! / بن / باش

# برنامج لإخراج صفحة معلومات النظام TITLE= "تقرير معلومات النظام لـ $ HOSTNAME" صدى صوت "

$TITLE

$TITLE

"


انتهزنا أيضًا الفرصة لتحسين عنواننا بإضافة قيمة متغير shell

HOSTNAME. هذا هو اسم الشبكة الخاص بالجهاز.


صورة

ملاحظات: توفر القشرة بالفعل طريقة لفرض ثبات الثوابت ، من خلال استخدام أعلن الأمر المدمج مع -r (للقراءة فقط) الخيار. كنا قد خصصنا TITLE من هنا:


أعلن -r TITLE = "عنوان الصفحة"


سوف تمنع shell أي تعيين لاحق لـ TITLE. نادرًا ما يتم استخدام هذه الميزة ، ولكنها موجودة في النصوص الرسمية للغاية.


صورة


 

أفضل الحوسبة السحابية لنظام التشغيل في OnWorks: