المساعد الشخصي الرقمي

مشاهدة النسخة كاملة : [ حصرياً التكرار For ]



Chakira
11-02-2013, بتوقيت غرينيتش 01:06 AM
السلام عليكم ورحمة الله وبركاته

قد يبدو موضوع اليوم مختلفا بعض الشئ .. وقد يتساءل البعض عن علاقة التكرار FOR بقسم الاستضافة HOTING ودروس الاستضافة HOTING ..

ولكن هنا ومن خلال السطور القادمة سوف تكتشف عزيزي القارئ انه لا انفصال بين لغات البرمجة وادواتها وبين ادارة السيرفر SERVERات والتي هي بالطبع ادارة أنظمة تشغيل تستطيع ان تسبح بها بشتي لغات البرمجة .. كيفماتشاء .. بكتابة برامجك الخاصة التي تنفذ مهام محددة او متعددة توفر عليك الوقت والجهد معاً .. فضلا عن المتعة في ادارة سيرفر SERVERك .. او حتي جهازك الشخصي .

أولاً ما هو التكرار FOR ؟
هو جملة joomla برمجية تستخدم لتكرار امر معين . كلام سليم ؟ أينعم سليم .

طيب تعالوا نشوف الصورة العامة للتكرار في معظم لغات البرمجة :
يكون علي هذه الصورة :
رمز Code:
for (var=0; var<=num; var++)
حيث var هو اسم متغير ما .. قمنا بإعطاءه قيمة الصفر .. ثم اجرينا قمنا بتحديده في نطاق عددي معين في الجزء الثاني var<=num فهو أقل من أو يساوي عدد ماnum اختصار لـ number ثم أجرينا عليه عملية في الجزء الثالث var++ ليزيد قيمة المتغير var بمقدار 1 إلي أن يصل لقيمة الـ num الموجود في الجزء الثاني من جملة joomla الكود code .

تلك هي الصورة العامة لجملة joomla التكرار باستخدام FOR وستجدها كذلك في جميع لغات البرمجة تقريباً .

ولكن اليوم وفي مجالنا ( سيرفر SERVERات ) وكلنا نعمل علي منصة اللينوكس ومن خلال الاوامر السطرية فنستطيع استخدام التكرار FOR لأداء العديد من العمليات بسرعة وسهولة واختصار وقت وجهد كبير جداً .. اعتمادا علي الباش ..

مثال 1 :
لديك عملاء كثيرين علي السيرفر SERVER وقد طلبوا منك ان تقوم بتحويل السي بانل CPANEL من اللغة الانجليزية إلي اللغة العربية .. بالطبع تستطيع عمل ذلك من خلال الـ WHM بنقلهم جماعيا لثيم خاص باللغة العربية أو من خلال اعدادات الباكدج .
ولكنك ايضا تستطيع عمل نفس الشئ وبطريقة أسرع من خلال الشيل
قم بإنشاء ملف جديد وفتحه للكتابة بالامر
رمز Code:
pico chang_lang.sh
اكتب الكود code التالي بداخل الملف :
رمز Code:
#!/bin/bash for i in `ls /var/cpanel/users` do replace -s &quot;LANG=english&quot; &quot;LANG=arabic&quot; -- $i done echo &quot;successfully changed language from English to Arabic for all users&quot;
قم بحفظ الملف .. ثم اعطاءه تصاريح التنفيذ بالامر
رمز Code:
chmod +x chang_lang.sh
في السطر الاول
#!/bin/bash
نستخدم برنامج bash لتنفيذ البرنامج ..
في السطر الثاني :
نستخدم التكرار For وقد وضعنا به المتغير i واعطيناه قيم كثيرة هي ناتج الأمر
ls /var/cpanel/users والذي يعرض كل عملاء السي بانل CPANEL لديك علي السيرفر SERVER وهنا المتغير i سوف يحمل قيمة هي احد العملاء كل مرة ..

السطر الثالث كلمة do وهي التي سيتم وضع الامر الذي نريد تنفيذه بعدها
السطر الرابع استخدمنا الامر replace لتغيير اللغة من الانجليزية إلي العربية .
السطر الخامس استخدمنا الكلمة done لانهاء التكرار . . . .
السطر السادس لعرض جملة joomla تفيد بأنه تم تنفيذ العملية وتغيير اللغة بنجاح .

الان قم بتنفيذ السكريبت script
رمز Code:
./chang_lang.sh
مثال 2 :
نريد عمل ايقاف مؤقت (سسبند) لجميع المواقع علي السيرفر SERVER ..
قم بفتح ملف جديد
رمز Code:
pico suspend.sh
قم بكتابة الكود code التالي بداخله

رمز Code:
#!/bin/bash for i in `ls /var/cpanel/users` do /scripts/suspendacct $i done echo &quot;successfully suspended all users&quot;

احفظ العمل ثم اعطي تصريح للملف
رمز Code:
chmod +x suspend.sh
ثم تنفيذ البرنامج
رمز Code:
./suspend.sh

تمرين :
بمجلد التمب نجد العديد من ملفات السيسون ( الجلسات) وقد نحتاج الي حذفها احيانا .. هذه الملفات تجدها علي هذه الصورة مثلا
sess_c78994c17a167c342556cd877f8ef321
الان نريد كتابة كود code باش يقوم بحذف ملفات السيسون فقط من داخل مجلد التمب باستخدام التكرار FOR







انتهي !

الموضوع ذا مجرد فاتح شهية وبادئة لطرح الكثير جدا من سكريبت scriptات شيل تؤدي وظائف عدة علي الخادم .
المثالين بأعلي لا يُعترف بهم برمجياً وانما تمت كتابتهم ببساطة شديدة لهدف تعليمي بحت ولطرح فكرة التكرار ولا يعبروا عن مستوي الكاتب .

منقول من مطور http://www.dzbatna.com/images/smilies/cupidarrow.gif





https://fbcdn-sphotos-d-a.akamaihd.net/hphotos-ak-ash4/482113_236967293114455_1193518507_n.png (http://www.dzbatna.com)
©المشاركات المنشورة تعبر عن وجهة نظر صاحبها فقط، ولا تُعبّر بأي شكل من الأشكال عن وجهة نظر إدارة المنتدى (http://www.dzbatna.com)©

استعمل مربع البحث في الاسفل لمزيد من المواضيع


سريع للبحث عن مواضيع في المنتدى