|
||||||
|
للتسجيل اضغط
هـنـا
« آخـــر الــمــواضــيــع » |
|
||||||||||
|
||||||||||
|
||||||||||
| أصول برمجة دروس ومشاريع برمجية php - c - asp - perl - python - java script - ajax - bash |
![]() |
|
|
LinkBack | أدوات الموضوع | انواع عرض الموضوع |
|
|
#1 (permalink) |
|
رجل أقـل معـرفـة
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() تاريخ التسجيل: Jun 2004
الدولة: مــصـــــر
العمر: 29
المشاركات: 1,160
![]() ![]() ![]() ![]() ![]() ![]() |
بسم الله الرحمن الرحيم
الحمدلله والصلاة والسلام على رسول الله وعلى آله وصحبه أجمعين اليوم ان شاء الله نتحدث عن أداة جميلة في استخدامها عند كتابتك لسكريبت باش .. وهي اداة الحوار dialog بالطبع كل ما كان السكريبت الذي تقوم بكتابته متحاوراً أو متفاعلا مع المستخدم كلما كان أفضل بكثير .. ولقد تحدث الأخ نبيل في موضوعه علي هذا الرابط [فقط الأعضاء المسجلين والمفعلين يمكنهم رؤية الوصلات . إضغط هنا للتسجيل] عن العبارة read والتي تسأل مستخدم السكريبت سؤال وتطلب منه الاجابة عليه .. ومثال علي ذلك .. قم بإنشاء ملف جديد وليكن بإسم osowl.sh باستخدام محرر النصوص الذي يروق لك .. أو قم بتنفيذ هذه الخطوات معي : كود:
cat > osowl.sh كود:
#!/bin/sh echo "Hello to bash scripting do you feel it is nice lang.? Type [y] for yes Or [n] for no" ; read answer الان قم بتشغيل السكريبت sh osowl.sh سوف يسأل الان السؤال الذي كتبناه به ويطلب منك الاجابة اما نعم أو لا .. كما في الصورة : ملحوظة :: الأمر الاول cat > osowl.sh هو لانشاء ملف جديد باسم osowl.sh ويجب مراعاة أنه لا يوجد لديك ملف بهذا الاسم . لذا نستطيع استخدام أمر cat في فتح وانشاء ملفات جديدة مثلما هو الحال مع باقي المحررات مثل vi و nano وغيرها .. الآن سوف نري كيف يكون الحال مع استخدام مربعات الحوار أو الأداة dialog سوف نعيد نفس الخطوات ولكن مع تغيير الكود : نفتح ملف جديد او نستخدم الامر cat كما في المثال السابق : كود:
cat > osowl1.sh نكتب الكود التالي : نحفظ الملف بالضغط علي ctrl +d نقوم بتشغيل السكريبت بالأمر sh osowl1.sh سوف تظهر لنا النتيجة كما بالصورة التالية : الآن نأتي لشرح الكود بشئ من التفصيل : نأتي الآن للأرقام 7 ثم 70 الرقم الأول من اليسار وهو 7 وهذا يحدد ارتفاع مربع الحوار الذي ستظهر به الرسالة وبالطبع نقوم بزيادته أو نقصانه حسب حجم وطول أو عدد اسطر الرسالة التي نريدها ان تظهر للمستخدم . الرقم الثاني من جهة اليسار وهو في مثالنا 70 وهذا يحدد عرض مربع الحوار الذي ستظهر به الرسالة وبالطبع نقوم بزيادته أو نقصانه حسب حجم وطول أو عدد اسطر الرسالة التي نريدها ان تظهر للمستخدم . وأخيرا كلمة او دالة read والتي توقف عمل السكريبت مؤقتا لحين وصول رد من المستخدم وكما في المثال السابق لا يوجد اجابة محددة مطلوبة من المستخدم فقط الرسالة تقول في نهايتها : press any key to continue اضغط اي مفتاح للاستمرار . كان ذلك مثالا سريعا لعمل سكريبت يتفاعل مع المستخدم .. ولكن الجدير بالذكر هو أن الأداة dialog تمكننا من استخدام اكثر من نوع من مربعات الحوار .. مثل قائمة بها خيارات متعددة أو مربع حوار لادخال بيانات أو مربع حوار يطلب تأكيد المستخدم علي الاستمرار او التراجع وهكذا .. تعالوا نري امثلة لهذه الأدوات .. ولكن اسمحوا لي الآن حيث داهمني الوقت .. ولكن في أقرب قريب سوف اكتب الباقي بإذن الله وأحب أن أنوه بأن جميع الحقوق محفوظة لمنتديات أصول .. لا بأس من نقل الموضوع ولكن يرجي ذكر الرابط الأصلي للموضوع . أخوكم -المحترف ,
__________________
![]() قيل : الدنيا كلها ظلمات إلا موضع العلم … والعلم كله هباء إلا موضع العمل … والعمل كله هباء إلا موضع الإخلاص … وقيل .. قيّدوا العلم بالكتب .. وقيدوا النعم بالشكر . التعديل الأخير تم بواسطة المحترف ; 05-19-2009 الساعة 04:54 PM |
|
|
|
|
|
#3 (permalink) |
|
عضو نشيط
![]() ![]() ![]() تاريخ التسجيل: Apr 2009
العمر: 24
المشاركات: 104
![]() ![]() ![]() ![]() ![]() ![]() |
تصدق بالله انت مفيش زيك
انا معجب جدا جدا جدا بالحركه اللي هي انك تختار من خلال gui او بمعنى اصح بتسمى tui على اي حال زي ما بيقولوا ان بحر العلم مالو نهايه وكل يوم بنتعلم كتير وبردو مش ممكن تتعلم كل حاجه ومش ممكن نكتفي ومش ممكن توصل للنهايه انا الحمد لله اعتقد اني على مستوى معقول من العلم - رغم كده ببص لنفسي على اني ولا حاجه وربنا اللي عالم ده - وبتطلع دائماً للأفضل والأحسن على اي حال اقرأ الموضوع كويس جدا جدا جداً وبشكل دقيق جداً وافصصه صح وبعد كده هعلق بقى بذمه شويه ولو تسمحلي لو في اضافات بعد اذنك هضيف ،،، تسلم ايديك على الموضوع الجميل ده ،،،، ومستنيين كل جديد ليك ،،، بارك الله فيك ،،، ،،،
|
|
|
|
|
|
#4 (permalink) |
|
عضو نشيط
![]() ![]() ![]() تاريخ التسجيل: Apr 2009
العمر: 24
المشاركات: 104
![]() ![]() ![]() ![]() ![]() ![]() |
شكراً لك اخي الكريم على الموضوع الأكثر من رائع على اي حال انا حابب اقول اي حاجه على الأقل اخلي عندي شويه دم وأضيف حاجه اساعدك بيها يعني عشان الحمل كله ميبقاش على كتافك
بص ياسيدي انا قرأت الموضوع كويس جدا جدا جدا بس في نقطه حبيت الفت نظر الناس ليها : في النسخ القديمه اللي زي حالاتي كده بحب اشتغل على redhat enterprise 4 او centos 4 مش هيكون في امر dialog طبعاً زي ما الناس كلها عارفه هنستعمل امر : كود:
yum install dialog كود:
rpm.pbobe.net على اي حال عايز اكتب اي حاجه بقى مينفعش كده يعني بس اعذرني اني كلامش مش هيكون دقيق قوي بس والله عايز اساعدك : بصوا ياجماعه انا عملت سيرش على جوجل ولقيت سكربت هو كان مكتوب هندي باين مفهمتش منه حاجه على اي حال الكود اهه بعد ما خليته انجليزي هفهملكم الكود والأخ المحترف طبعاً بالتأكيد هيقول رأيه في اللي قلته : كود:
dialog --inputbox "Do we do it or not?" 8 60 if [ $? != 0 ] ; then clear echo "Cancled ;-)" exit else clear echo "OK! Here we go..." fi الوقت انا فتحت ديالوج عشان يعمل الشكل بتاع الإطار بعد كده اديته ارتفاع 8 و عرض 60 كويس قوي عشانه وكتبت في الديالوج Do we do it or not? ده اللي هيظهر في الديالوج وخد بالك ده inputbox يعني ممكن تدخل فيه اي حاجه بعد كده قلتله لو ال exit status = صفر ده معناه ان العمليه اللي فوق نجحت - صفر يعني نجاح اي رقم غيره يعني فشل قلتله لو ال exit status لا يساوي الصفر يعني فشل في الأمر اللي قبله اللي هو الديلوج اخرج من البرنامج وأكتب Cancled ;-) بعد ما تعمل كلير للشاشه . اما لو النتيجه صحيحه ومفيش اي مشاكل امسح الشاشه وأكتب فيها OK! Here we go... وإنتهى البرنامج على كده برنامج صعب قوي وتعبت الحقيقه فيه قوي ،،،، ههههههه والله انا هحاول اكمل بحيث اساعد في الموضوع قدر الإمكان وأتمنى انكم متزعلوش من اني مش قد كده في الموضوع ده بس والله هساعد قدر المستطاعتحياتي للجميع وللمحترف شخصياً جدا جدا جداً ،،، الله معكم ،،، وتصبحوا على خير ،،، |
|
|
|
|
|
#5 (permalink) |
|
عضو نشيط
![]() ![]() ![]() تاريخ التسجيل: Apr 2009
العمر: 24
المشاركات: 104
![]() ![]() ![]() ![]() ![]() ![]() |
عايز اضيف حاجه كمان ياجماعه ربما حد يكون بيبحث عنها انا كنت اعرف دي من زمان وبصراحه نسيتها بس لما بحثت عنها من شويه وصلتلها بس ببساطه لاني كنت عندي فكره عنها وهي اننا ممكن نعمل نفس موضوع الديالوج ده بس من gui الكلام ده ازاي من خلال الأمر :
zenity طبعاً ميتخيرش عن الأمر التاني بس ده امر من اوامر جنوم GUI ممكن نتكلم عنه بعد ما الموضوع ده يخلص او نتكلم عنه في موضوع جديد ربنا يسهل على حسب الظروف صوره بس للتوضيح ممكن توضح الشكل هيبقى ازاي : ![]() كود الصوره اللي فاتت دي للي يحب طبعاً : كود:
#!/bin/bash zenity --question --text="Are you sure you wish to proceed?" التعديل الأخير تم بواسطة NabeeliumAttack ; 05-11-2009 الساعة 06:19 AM |
|
|
|
|
|
#7 (permalink) |
|
رجل أقـل معـرفـة
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() تاريخ التسجيل: Jun 2004
الدولة: مــصـــــر
العمر: 29
المشاركات: 1,160
![]() ![]() ![]() ![]() ![]() ![]() |
السلام عليكم ورحمة الله وبركاته
شكرا لك اخي نبيل لحضورك واضافتك الرائعة .. وشكرا لحضورك أختي باراديس ولا حرمنا الله منك ابدا .. والان تعالوا بنا نكمل الموضوع .. يتبع ..
__________________
![]() قيل : الدنيا كلها ظلمات إلا موضع العلم … والعلم كله هباء إلا موضع العمل … والعمل كله هباء إلا موضع الإخلاص … وقيل .. قيّدوا العلم بالكتب .. وقيدوا النعم بالشكر . |
|
|
|
|
|
#8 (permalink) |
|
رجل أقـل معـرفـة
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() تاريخ التسجيل: Jun 2004
الدولة: مــصـــــر
العمر: 29
المشاركات: 1,160
![]() ![]() ![]() ![]() ![]() ![]() |
بسم الله الرحمن الرحيم
تحدثنا في بداية الموضوع عن احد مربعات الحوار التي يمكن وضعها بالبرنامج باستخدام الاداة dialog وما تناولناه بالشرح كان مربع حوار عبارة عن رسالة معلومات تظهر للمستخدم infobox والان سوف نتحدث عن مربع حوار اخر يتفاعل مع المستخدم وهو عبارة عن رسالة ايضا تظهر للمستخدم ولكن بها زر موافقة (ok) افتح ملف جديد باسم osowl2.sh بواسطة محرر النصوص المفضل لديك وضع الكود التالي به : كود:
#!/bin/sh dialog --title "Hello to Bash - Dialog" --backtitle "Learning Bash" \ --msgbox "Hello Dear , we are trying to cover the bash scripting here in Osowl.com , special greats to Nabeeluimattack and all Osowl.com members \ Please press any key to continue" 7 70 ; read sh osowl2.sh سوف تظهر لك الصورة : ![]() لو تلاحظ انه نفس الكود السابق في مثالنا الأول .. والفرق الوحيد هو في اسم مربع الحوار المراد وفي حالتنا هذه تم اختيار : msgbox وبعد تشغيل السكريبت سوف تلاحظ ظهور كلمة (ok) في اسفل الرسالة ويتوجب عليك ضغط انتر <<< ليس لديك خيار اخر ![]() ================================================== === نأتي لمربع حوار اخر نستطيع تصميمه باستخدام الاداة dialog وهو اظهار مربع حوار للمستخدم يطلب منه تأكيد الاستمرار في الخطوة التالية من عمل السكريبت حيث يظهر للمستخدم الاختيار ما بين نعم أو لأ yes or no انظر لهذه الصورة : ![]() سوف تجد كما في الصورة مربع حوار يطلب من المستخدم تأكيد الاستمرار .. والا تعالوا ننظر الي الكود : افتح ملف جديد باسم osowl3.sh بمحرر النصوص المفضل لديك واكتب الكود التالي : كود:
#!/bin/sh dialog --title "Hello to Bash - Dialog" --backtitle "Learning Bash" \ --yesno "Hello Dear , we are trying to cover the bash scripting here in Osowl.com , do you want to continue with us ?" 7 70 ; read sh osowl3.sh الجديد في هذا الكود هو فقط في نوع مربع الحوار المراد استخدامه وهو كود:
--yesno أتمني ذلك ومن لديه استفسار فليتفضل .. وأستأذنكم الان ونكمل في وقت لاحق بإذن الله للجميع مني أطيب تحية
__________________
![]() قيل : الدنيا كلها ظلمات إلا موضع العلم … والعلم كله هباء إلا موضع العمل … والعمل كله هباء إلا موضع الإخلاص … وقيل .. قيّدوا العلم بالكتب .. وقيدوا النعم بالشكر . |
|
|
|
![]() |
| مواقع النشر (المفضلة) |
| الكلمات الدلالية (Tags) |
| مربعات الحوار, bash, dialog utility, برمجة الباش, infobox, interface, menubox |
| الذين يشاهدون محتوى الموضوع الآن : 1 ( الأعضاء 0 والزوار 1) | |
عدد الأعضاء الذين شاهدوا هذا الموضوع : 10
|
|
| , , , , , , , , |
| أدوات الموضوع | |
| انواع عرض الموضوع | |
|
|
المواضيع المتشابهه
|
||||
| الموضوع | كاتب الموضوع | المنتدى | مشاركات | آخر مشاركة |
| مربعات الحوار الرسوميه في bash - Zenity | NabeeliumAttack | أصول برمجة | 6 | 07-02-2009 05:28 PM |
| اصول Bash Scripting | NabeeliumAttack | أصول برمجة | 7 | 04-30-2009 11:53 PM |
| سيكون الحوار لغتنا | soheel | أصول النقاش الجاد | 4 | 07-01-2007 09:27 PM |
| عصر الحوار وحسن الجوار. | نادين | أصول العام | 5 | 03-10-2007 11:04 PM |
| فنون الحوار | soheel | أصول النقاش الجاد | 3 | 12-23-2004 04:13 PM |
![]() |
![]() |