نتائج البحث

اذهب إلى التنقل اذهب إلى البحث

الأفخاخ في Bash

عام قد تجد حالات لا تريد فيها من يستخدم شيفراتك النصية أن يخرج قبل الوقت المحدد عن طريق اختصارات لوحة المفاتيح حين تحتاج إلى مدخلات مثلًا أو عند القيام بعملية تنظيف، ويمكن استخدام أمر trap ليلتقط إشارات لوحة المفاتيح تلك، ويمكن برمجته مسبقًا لينفِّذ قائمة أوامر عند التقاط تلك الإشارات. قواعد أمر trap واضحة ومباشرة: trap [الإشارات] [الأوامر] هذا يجعل أمر trap يلتقط الإشارات المُعطاة له، والتي قد تكون أسماء إشارات مع سابقة SIG أو بدونها، أو تكون أرقام إشارات. وإن ...

Bash/Topics

صدفة Bash وبرامج Bash البرامج الشائعة للصَّدَفة وظائف الصدفة وما تفعله إضافة إلى أنواعها المختلفة (sh، bash، csh، ... ) مزايا صدفة Bash استعراض لأهم مزايا صدفة Bash، مثل الصور المختلفة لاستدعاءات الصدفة، والتعابير الحسابية والشرطية والصدفة المحظورة، وكذلك الأوامر البديلة والمصفوفات، ... . تنفيذ الأوامر في Bash توضيح لما يحدث عند تنفيذ الأوامر في صدفة Bash، واستعراض لأهم الأوامر المُضمَّنة فيها. وحدات البناء الأساسية شرح للوحدات الأساسية التي تشكل صدفة Bash، مثل الأوامر والدوال والمعامِلات والتوسعات والبنية اللغوية، إضافة ...

المصفوفات في Bash

إنشاء المصفوفات المصفوفة هي متغير يحتوي قيمًا متعددة، وأي متغير قد يُستخدم كمصفوفة، كذلك لا يوجد حد أقصى لحجم المصفوفة ولا يُشترط أن تُفهرس المتغيرات داخل المصفوفة أو تُعيَّن في وقت واحد، وقد تكون المصفوفات صفرية القاعدة أي يُفهرس أول عنصر برقم صفر. ينفَّذ التصريح غير المباشر عن المتغير (indirect declaration) باستخدام البنية اللغوية التالية: ARRAY[INDEXNR]=value يعامَل المفهرِس INDEXER على أنه تعبير حسابي يجب أن يٌقدَّر بعدد موجب، ويتم التصريح الواضح (explicit declaration) للمصفوفة باستخدام أمر declare: declare -a ARRAYNAME يُقبَل التصريح ...

الحقل file

عناصر <input> ذات النوع file تسمح للمستخدم باختيار ملف أو أكثر لرفعها إلى الخادوم أو تعديلها باستخدام الواجهة البرمجية File. الخاصية value تحتوي الخاصية value في الحقل file على سلسلة نصية (DOMString) التي تُمثِّل المسار إلى الملف (أو الملفات) المختارة. بعض الأمور التي عليك أن تضعها بالحسبان: إذا تم اختيار عدِّة ملفات، فقيمة الخاصية value ستُمثِّل أوّل ملف مختار، لكن يمكن الوصول إلى الملفات الأخرى عبر الخاصية FileList في DOM التابعة للعنصر <input>. إذا لم يتم اختيار ملف بعد، فستكون ...

تطوير برامج Bash جيدة

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

الاستخدامات المتقدمة لعبارة if الشرطية في Bash

بُنى if/then/else يوضح المثال التالي البُنية التي يجب استخدامها لاتخاذ إجراء أو سلسلة إجراءات إن تحققت شروط عبارة if، وسلسلة إجراءات أخرى إن لم تتحقق: hsoub scripts> gender="male" hsoub scripts> if [[ "$gender" == "f*" ]] More input> then echo "Pleasure to meet you, Madame." More input> else echo "How come the lady hasn't got a drink yet?" More input> fi How come the lady hasn't got a drink yet? hsoub scripts> الفرق بين [] و [[]] على عكس ]، فإن ]] تمنع انقسام الكلمات في ...

التابع ConfigParser.add_section()‎‎ في بايثون

يضيف التابع قسمًا يحمل الاسم المعطى إلى نسخة الصنف ConfigParser. البنية العامة add_section(section) ‎المعاملات section سلسلة نصية تتضمن اسم القسم المراد إضافته إلى نسخة الصنف ConfigParser. القيمة المعادة إن كان هناك قسم يحمل الاسم ذاته فإنّ التابع يطلق الاستثناء DuplicateSectionError. وإن كان الاسم المعطى مطابقًا لاسم قسم الإعدادات الافتراضية فإنّ التابع يطلق الاستثناء ValueError. يجب أن يكون الاسم المعطى سلسلة نصية وإلّا فإنّ التابع يطلق الاستثناء TypeError. ملاحظة: يطلق التابع الاستثناء TypeError عند استخدام الأسماء غير النصية في الإصدار 3.2 ...

تنفيذ الأوامر في Bash

عام تحدد bash نوع البرنامج الذي يتم تنفيذه، وتكون البرامج هنا عادة أوامر للنظام في صورة مُجمّعة (compiled) على جهازك. وحين يتم تنفيذ أحد تلك البرامج، فإن bash تنشئ نسخة من نفسها، وتولد عملية جديدة بناء على ذلك، ويدعى ذلك الإجراء بالاشتقاق (forking). وتلك العملية الفرعية لديها نفس بيئة العملية الأصلية، ولا تختلفان إلا في رقم معرّف العملية (Process ID Number) لكل منهما. وتحِل بيانات العملية الجديدة محِل مساحة العنوان (address space) بعد الاشتقاق ، ويتم ذلك الإجراء من خلال ...

أنواع المتغيرات في Bash

التعيين العام للقيَم لم نركز كثيرًا في الشرح السابق لصدفة Bash على أنواع المتغيرات التي كنا نعيِّنها لأن Bash تستطيع التعامل مع أنواع متعددة من المتغيرات والمعامِلات، ونتيجة لذلك فإن متغيراتنا يمكنها احتواء أي نوع نختاره من البيانات، انظر المثال التالي للتوضيح: [hsoub in ~] VARIABLE=12 [hsoub in ~] echo $VARIABLE 12 [hsoub in ~] VARIABLE=string [hsoub in ~] echo $VARIABLE string وستكون حالات تريد فيها تجنب هذا السلوك من المثال السابق حين تتعامل مع أرقام الهواتف وغيرها مثلًا، وقد تحتاج أن تحدد متغيرًا ثابتًا (Constant ...

البُنى الشرطية في Bash

سنتعلم في هذا الباب كيف نبني سلاسل شرطية في برامجنا بحيث نستطيع اتخاذ إجراءات مختلفة بناء على نجاح الأوامر أو فشلها، وستُحدد تلك الإجراءات باستخدام عبارة if، وسيسمح هذا بتنفيذ مقارنات حسابية ونصية، واختبار رموز الخروج والمدخلات والملفات التي يحتاجها البرنامج. عادة ما يسبق الأوامر في برامج الصدفة اختبارُ if/then/fi لمنع إنشاء الخرج كي يعمل البرنامج في الخلفية أو من خلال أداة cron، أما الشروط الأكثر تعقيدًا فتوضع في عبارة case. ويخبر البرنامج الصدفة الأم عند نجاح اختبار الشرط باستخدام ...

المهام التكرارية في Bash

ستتعلم في هذا القسم كيف يمكن للأوامر المتكررة أن تندمج في حلقات تكرارية، وكيف تُبنى الحلقات التكرارية باستخدام عبارات for أو while أو until إحداها أو جميعها معًا، فحلقة for تنفذ مهمة ما عددًا محددًا من المرات، وإن كنت لا تعرف كم عدد مرات تنفيذ الأمر فاستخدم عبارة until أو while لتحديد متى يجب أن تتوقف الحلقة. ويمكن مقاطعة الحلقات أو إعادة تكرارها باستخدام عبارتي break و continue، كما يمكن استخدام ملف كمُدخَل لحلقة عبر معامل إعادة توجيه المدخلات، كذلك ...

اقتباس المحارف في Bash

فائدة اقتباس المحارف تحمل كثيرًا من المحارف والكلمات معاني ووظائف خاصة بشكل أو بآخر، ويُستخدم الاقتباس لإلغاء ذلك المعنى أو الوظيفة الخاصة، إذ تعطِّل علامات التنصيص في Bash تلك المعاملة التي يلقاها المحرف الخاص، وتمنع معاملة الكلمات الخاصة وفقًا للمعاني التي تحملها، وكذلك تعطِّل توسع المعامِلات. محارف الهروب تُستخدم محارف الهروب لإلغاء المعنى الخاص لمحرف واحد، وتُستخدم الشرطة المائلة الخلفية \ كمحرف للهروب في Bash، إذ تحتفظ بالمعنى المباشر للمحرف الذي يليها باستثناء محرف السطر الجديد، فإن أتى محرف سطر ...

التعابير النمطية في Bash

يلقي هذا الباب الضوء على المزايا المُضمَّنة في Bash لمطابقة الأنماط (patterns) والتعرف على فئات المحارف ومداها. إضافة إلى تفصيل للتعابير النمطية (Regular Expressions)، إذ هي أدوات قوية لاختيار أسطر بعينها من ملفات أو من مُخرج ما، وتستخدمها أوامر كثيرة في يونكس مثل vim و perl وقاعدة بيانات PotgreSQL وغيرها، كما يمكن إضافتها في أي لغة أو تطبيق باستخدام مكتبات خارجية، بل قد تجدها في أنظمة غير أنظمة يونكس، إذ يستخدمها برنامج Excel للجداول الذي يأتي في حزمة مكتب ويندوز. ...

التقاط الإشارات في Bash

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

حلقة while في Bash

كيفية عمل حلقة while تسمح حلقة while التكرارية بالتنفيذ المتكرر لقائمة أوامر طالما أن الأمر المتحكم في حلقة while يُنفَّذ بنجاح (حالة خروجه صفر). والبنية اللغوية لهذه الحلقة هي: while CONTROL-COMMAND; do CONSEQUENT-COMMANDS; done حيث يرمز CONTROL-COMMAND -وهو الأمر الذي سيتحكم في الحلقة- إلى أي أمر يخرج بحالة فشل أو نجاح، بينما قد تكون CONSEQUENT-COMMANDS -وهي الأوامر التي ستُكرَّر- أي برنامج أو برنامج للصدفة أو أحد بُنى الصدفة المختلفة. وتخرج الحلقة فور فشل الأمر المتحكِّم فيها، وإن كانت الحلقة في برنامج ...

مقدمة إلى الدوال في Bash

ما هي الدوال؟ دوال الصدفة طريقة لتجميع أوامر من أجل تنفيذها لاحقًا باستخدام اسم واحد للمجموعة ككل أو روتين، ويجب أن يكون اسم الروتين فريدًا لا يتكرر في الصدفة أو الشيفرة النصية، وتُنفَّذ كل الأوامر التي تكوِّن الدالة مثل الأوامر العادية تمامًا. تُنفَّذ قائمة الأوامر المرتبطة باسم دالة حين تُستدعى تلك الدالة كأمر بسيط، وتُنفَّذ الدالة داخل الصدفة التي صُرِّح عنها فيها، فلا تُفتح عملية جديدة لتفسير الأوامر. وستظهر الأوامر الخاصة المُضمَّنة قبل دوال الصدفة أثناء البحث عن الأوامر، والأوامر ...

العمليات على المتغيرات في Bash

العمليات الحسابية على المتغيرات ناقشنا العمليات الحسابية من قبل في التوسعات في Bash، انظر التوسع الحسابي. طول المتغير استخدم صيغة {VAR#}$ لحساب عدد المحارف في متغير ما، وإن كان VAR هو أحد المحرفيْن * أو @ فإن القيمة يحل محلها عدد المعامِلات الموضعية أو عدد العناصر داخل المصفوفة بشكل عام، انظر المثال التالي: [hsoub in ~] echo $SHELL /bin/bash [hsoub in ~] echo ${#SHELL} 9 [hsoub in ~] ARRAY=(one two three) [hsoub in ~] echo ${#ARRAY} 3 عمليات التحول في المتغيرات الإحلال Substitution {VAR:-WORD}$ إن لم ...

التابع ConfigParser.remove_section()‎‎ في بايثون

يحذف التابع القسم المحدّد من ملف الإعدادات. البنية العامة remove_section(section) ‎المعاملات ‎section القسم المراد حذفه من ملف الإعدادات. القيمة المعادة يعيد التابع القيمة True إن كان القسم موجودًا، ويعيد القيمة False فيما عدا ذلك. أمثلة يبين المثال التالي طريقة عمل التابع: >>> import configparser >>> config = configparser.ConfigParser() >>> config.read('config.cfg') ['config.cfg'] >>> config.remove_section('bitbucket.org') True >>> config.remove_section('github.com') False انظر أيضًا التابع remove_option()‎: يحذف التابع الخيار المعطى من القسم المحدّد من ملف الإعدادات. مصادر صفحة Configuration file parser في توثيق بايثون الرسمي.

التابع ConfigParser.remove_option()‎‎ في بايثون

يحذف التابع الخيار المحدّد من القسم المحدّد. البنية العامة remove_option(section, option) ‎المعاملات section القسم الذي يحتوي على الخيار المراد حذفه. option الخيار المراد حذفه. القيمة المعادة إن لم يكن القسم المحدّد موجودًا، سيطلق التابع الاستثناء NoSectionError. يعيد التابع القيمة True إن كان الخيار المراد حذفه موجودًا، ويعيد القيمة False فيما عدا ذلك. أمثلة يبين المثال التالي طريقة عمل التابع: >>> import configparser >>> config = configparser.ConfigParser() >>> config.read('config.cfg') ['config.cfg'] >>> config.remove_option('topsecret.server.com', 'php_version') True انظر أيضًا التابع remove_section()‎: يحذف التابع القسم المعطى من ملف الإعدادات. مصادر ...

التابع ConfigParser.defaults()‎‎ في بايثون

يعيد التابع قاموسًا يتضمّن القيم الافتراضية على مستوى نسخة الصنف instance-wide defaults. البنية العامة defaults() ‎القيمة المعادة يعيد التابع قاموسًا يتضمّن القيم الافتراضية على مستوى نسخة الصنف instance-wide defaults. أمثلة لنفرض أن لدينا ملف الإعدادات التالي: [DEFAULT] ServerAliveInterval = 45 Compression = yes CompressionLevel = 9 ForwardX11 = yes [bitbucket.org] User = hg [topsecret.server.com] Port = 50022 ForwardX11 = no يؤدي استدعاء التابع defaults()‎ إلى الحصول على المخرجات التالية: >>> import configparser >>> config = configparser.ConfigParser() >>> config.read('config.cfg') ['config.cfg'] >>> config.defaults() OrderedDict([('serveraliveinterval', '45'), ('compression', 'yes'), ('compressionlevel', '9'), ('forwardx11', 'yes')]) مصادر صفحة Configuration file parser في ...

التابع ConfigParser.has_section()‎‎ في بايثون

يتحقّق التابع من وجود القسم المعطى في ملف الإعدادات. لا يتعرّف التابع على قسم الإعدادات الافتراضية. البنية العامة has_section(section) المعاملات section اسم القسم الذي يتحقق التابع من وجوده في ملف الإعدادات. القيمة المعادة يعيد التابع القيمة True إن كان القسم المعطى موجودًا في ملف الإعدادات، ويعيد القيمة False إن لم يكن القسم موجودًا. أمثلة يبين المثال التالي طريقة عمل التابع: >>> import configparser >>> config = configparser.ConfigParser() >>> config.read('config.cfg') ['config.cfg'] >>> config.has_section('bitbucket.org') True >>> config.has_section('Apache') False انظر أيضًا التابع has_option()‎: يتحقق التابع من وجود الخيار المعطى في ...

التابع ConfigParser.read_string()‎‎ في بايثون

يفسّر التابع الإعدادات من سلسلة نصية. ملاحظة: هذا التابع جديد في الإصدار 3.2 من بايثون. البنية العامة read_string(string, source='<string>') المعاملات ‎string السلسلة النصية المراد تفسير الإعدادات فيها. source معامل اختياري يحدد اسمًا خاصًّا بالسياق context-specific name للسلسلة النصية الممرّرة. تُستخدم القيمة '<string>' في حال عدم استخدام هذا المعامل. عادة ما تكون قيمة هذا المعامل مسارًا في ملفات النظام أو عنوان URL. أمثلة يبين المثال التالي طريقة عمل التابع: >>> import configparser >>> sample_config = """ ... [mysqld] ... user = mysql ... ...

التابع ConfigParser.sections()‎‎ في بايثون

يعيد التابع قائمة بالأقسام المتاحة، ولا يكون قسم الإعدادات الافتراضية DEFAULT ضمن هذه القائمة. البنية العامة sections() ‎القيمة المعادة يعيد التابع قائمة بالأقسام المتاحة، ولا يكون قسم الإعدادات الافتراضية DEFAULT ضمن هذه القائمة. أمثلة لنفرض أن لدينا ملف الإعدادات التالي: [DEFAULT] ServerAliveInterval = 45 Compression = yes CompressionLevel = 9 ForwardX11 = yes [bitbucket.org] User = hg [topsecret.server.com] Port = 50022 ForwardX11 = no يؤدي استدعاء التابع sections()‎ إلى الحصول على المخرجات التالية: >>> import configparser >>> config = configparser.ConfigParser() >>> config.read('config.cfg') ['config.cfg'] >>> config.sections() ['bitbucket.org', 'topsecret.server.com'] انظر أيضًا التابع defaults()‎: يعيد التابع قاموسًا يتضمّن ...

التابع ConfigParser.options()‎‎ في بايثون

يعيد التابع قائمة بالخيارات المتاحة في القسم المحدد. البنية العامة options(section) ‎المعاملات section اسم القسم الذي سيعيد التابع الخيارات الموجودة فيه. القيمة المعادة يعيد التابع قائمة بالخيارات المتاحة في القسم المحدد. أمثلة إن كان لدينا ملف الإعدادات التالي: [DEFAULT] ServerAliveInterval = 45 Compression = yes CompressionLevel = 9 ForwardX11 = yes [bitbucket.org] User = hg [topsecret.server.com] Port = 50022 ForwardX11 = no يؤدي استدعاء التابع options()‎ إلى الحصول على النتائج التالية: >>> import configparser >>> config = configparser.ConfigParser() >>> config.read('config.cfg') ['config.cfg'] >>> config.options('topsecret.server.com') ['port', 'forwardx11', 'serveraliveinterval', 'compression', 'compressionlevel'] انظر أيضًا التابع sections()‎: يعيد التابع ...

التابع RawConfigParser.add_section()‎‎ في بايثون

يضيف التابع قسمًا يحمل الاسم المعطى إلى نسخة الصنف RawConfigParser. البنية العامة add_section(section) المعاملات ‎section اسم القسم المراد إضافته إلى ملف الإعدادات. القيمة المعادة إن كان هناك صنف يحمل الاسم ذاته فإنّ التابع يطلق الاستثناء DuplicateSectionError. وإن كان الاسم المعطى هو اسم قسم الإعدادات الافتراضية فإنّ التابع يطلق الاستثناء ValueError. لا يجري التحقّق من نوع القسم الأمر الذي يسمح للمستخدم بإنشاء أسماء أقسام غير نصية، وهذا السلوك غير مدعوم وقد يتسبب في حدوث أخطاء داخلية. أمثلة يبين المثال التالي طريقة ...

الصنف File في روبي

الصنف File هو اختصار لأي كائن ملفٍ قابل للوصول عبر البرنامج ومرتبط عن كثب بالصنف IO. يتضمن الصنف File توابع الوحدة FileTest كتوابع صنفٍ مما يسمح لك باستعمال File.exist?("foo")‎ مثلًا. في شرح توابع الصنف File التالية، تكون بتات الأذونات (permission bits) مجموعة من البتات التي تعتمد على المنصة المستعملة والتي تشير إلى أذونات الملف. في الأنظمة الشبيهة بيونكس، تُعرض الأذونات على شكل مجموعة من ثلاثة ثمانيات (octets)؛ الأولى من أجل المالك، والثانية من أجل المجموعة المالكة، والثالثة تخص الأشخاص الآخرين. ...

كتابة وتنقيح برامج Bash

برنامج الصدفة هو سلسلة من الأوامر يعاد استخدامها بشكل متكرر، ووُضعت في ملف نصي له إذن تنفيذ كبرنامج، ويمكن استخدام أي محرر نصي لكتابة برامج لصدفة Bash. تبدأ برامج bash بـ !# متبوعيْن بمسار الصفة التي ستنفذ الأوامر التي ستُكتب في البرنامج، وتضاف التعليقات إلى البرنامج للمرجعية فيما بعد ولتيسير فهم الشيفرة على من يقرؤها. يُفضل الإسهاب في التعليقات داخل برامج الصدفة على الإيجاز فيها. تُنقَّح الصدفة باستخدام خيارات الصدفة، ويمكن استخدام تلك الخيارات للتنقيح الجزئي أو لتحليل الشيفرة كاملة، ...

التابع ConfigParser.getint()‎‎ في بايثون

تابع مساعد وظيفته تحويل الخيار المعطى في القسم المحدّد إلى عدد صحيح. البنية العامة getint(section, option, *, raw=False, vars=None[, fallback]) ‎المعاملات ‎راجع التابع get()‎ للمزيد من التفاصيل حول المعاملات raw و vars و fallback. القيمة المعادة يعيد التابع قيمة الخيار الذي يجلبه بعد تحويله إلى عدد صحيح. أمثلة يبين المثال التالي طريقة عمل التابع: >>> import configparser >>> config = configparser.ConfigParser() >>> config.read('config.cfg') ['config.cfg'] >>> config.getint('topsecret.server.com', 'Port') 50022 انظر أيضًا التابع get()‎: يجلب التابع الخيار المحدّد من القسم المعطى. التابع getfloat()‎: تابع مساعد وظيفته تحويل ...

التابع ConfigParser.getfloat()‎‎ في بايثون

تابع مساعد وظيفته تحويل الخيار المعطى في القسم المحدّد إلى عدد عشري ذي فاصلة عائمة. البنية العامة getfloat(section, option, *, raw=False, vars=None[, fallback]) ‎المعاملات ‎راجع التابع get()‎ للمزيد من التفاصيل حول المعاملات raw و vars و fallback. القيمة المعادة يعيد التابع قيمة الخيار الذي يجلبه بعد تحويله إلى عدد عشري ذي فاصلة عائمة. أمثلة يبين المثال التالي طريقة عمل التابع: >>> import configparser >>> config = configparser.ConfigParser() >>> config.read('config.cfg') ['config.cfg'] >>> config.getfloat('topsecret.server.com', 'php_version') 7.1 انظر أيضًا التابع get()‎: يجلب التابع الخيار المحدّد من القسم المعطى. ...

التابع ConfigParser.write()‎‎ في بايثون

يكتب التابع تمثيلًا للإعدادات في كائن الملف المعطى. البنية العامة write(fileobject, space_around_delimiters=True) ‎المعاملات ‎fileobject كائن الملف المراد كتابة الإعدادات فيه. ‎space_around_delimiters إن أخذ هذا المعامل القيمة True سيضيف التابع مسافات بيضاء حول الفواصل التي تفصل القيم عن المفاتيح. أمثلة يبين المثال التالي طريقة عمل التابع: >>> import configparser >>> config = configparser.ConfigParser() >>> config['DEFAULT'] = {'ServerAliveInterval': '45', ... 'Compression': 'yes', ... ...

التابع ConfigParser.getboolean()‎‎ في بايثون

تابع مساعد وظيفته تحويل الخيار المعطى في القسم المحدّد إلى قيمة منطقية (بوليانية). البنية العامة getboolean(section, option, *, raw=False, vars=None[, fallback]) ‎المعاملات ‎راجع التابع get()‎ للمزيد من التفاصيل حول المعاملات raw و vars و fallback. القيمة المعادة يعيد التابع قيمة الخيار الذي يجلبه بعد تحويله إلى قيمة منطقية (بوليانية). أمثلة يبين المثال التالي طريقة عمل التابع: >>> import configparser >>> config = configparser.ConfigParser() >>> config.read('config.cfg') ['config.cfg'] >>> config.getboolean('topsecret.server.com', 'ForwardX11') False >>> config.getboolean('topsecret.server.com', 'Compression') True انظر أيضًا التابع get()‎: يجلب التابع الخيار المحدّد من القسم المعطى. التابع getint()‎: ...

التعابير النمطية وأمثلة عن استخدام grep

التعابير النمطية Regular Expressions التعبير النمطي (Regular Expression) هو أسلوب يصف مجموعة من النصوص (strings)، وتُبنى تلك التعابير النمطية بشكل تناظري للتعابير الحسابية (arithmetic expressions) باستخدام عدة معامِلات لدمج التعابير الأصغر. وأصغر وحدة بنائية للتعابير النمطية هي تلك التي تطابق محرفًا واحدًا، ذلك أن أغلب المحارف -بما في ذلك كل الحروف والأرقام- ما هي إلا تعابير نمطية تطابق أنفسها، ويمكن اقتباس أي محرف خاص (metacharacter) له معنىً خاص بسبْقِه بشرطة مائلة خلفية \. المحارف الخاصة للتعابير النمطية يمكن إتْباع التعبير ...

التابع ConfigParser.items()‎‎ في بايثون

يعيد التابع الخيارات المنطوية تحت القسم المعطى. البنية العامة items(raw=False, vars=None) items(section, raw=False, vars=None) ‎المعاملات section ‎في حال عدم تمرير المعامل section فإنّ التابع يعيد قائمة تتضمّن أزواج اسم القسم، وسيط القسم (section_name, section_proxy) إضافة إلى قسم الإعدادات الافتراضية DEFAULTSECT. أما في حال تمرير المعامل section فإنّ التابع يعيد قائمة تتضمّن أزواج اسم، قيمة (name, value) للخيارات الموجودة في القسم المعطى. راجع التابع get()‎ للمزيد من التفاصيل حول المعاملات raw و vars. القيمة المعادة يعيد التابع قائمة تتضمن قيمًا مختلفة بالاعتماد ...

التابع ConfigParser.has_option()‎‎ في بايثون

يتحقق التابع من وجود الخيار المعطى في القسم المحدّد. البنية العامة has_option(section, option) ‎المعاملات ‎section القسم الذي سيبحث فيه التابع عن الخيار المعطى. option الخيار الذي سيبحث عنه التابع. القيمة المعادة إن كان القسم المعطى موجودًا ويتضمّن الخيار المعطى فإنّ التابع يعيد القيمة True، ويعيد القيمة False فيما عدا ذلك. إن كان القسم المحدّد هو None أو سلسلة نصية فارغة، فإنّ التابع يفترض بأنّه القسم DEFAULT. أمثلة لنفرض أن لدينا ملف الإعدادات التالي: [DEFAULT] ServerAliveInterval = 45 Compression = yes CompressionLevel = 9 ForwardX11 ...

التابع ConfigParser.readfp()‎‎ في بايثون

ملاحظة: هذا التابع مهمل منذ الإصدار 3.2 من بايثون، استخدم التابع read_file()‎ عوضًا عنه. ملاحظة: يمرّ التابع readfp()‎ على عناصر fp عوضًا عن استدعاء التابع fp.readline()‎. البنية العامة readfp(fp, filename=None) إن تضمنت الشيفرة استدعاءات للتابع readfp()‎ مع معاملات لا تدعم التكرار، فيمكن استخدام المولّد التالي لتغليف الكائن الشبيه بالملف: def readline_generator(fp): line = fp.readline() while line: yield line line = ...

التابع ConfigParser.read_file()‎‎ في بايثون

يقرأ التابع ويفسّر الإعدادات من المكرِّر iterable المعطى. البنية العامة read_file(f, source=None) ‎المعاملات f‎ مكرّر ينتج سلاسل نصية بترميز Unicode (مثل ملفات مفتوحة في الوضع النصي text mode). source معامل اختياري يحدد اسم الملف الذي تجري قرائته. إن لم يمرّر هذا المعامل وكان للمعامل f خاصية name فستُستخدم كقيمة للمعامل source. القيمة الافتراضية لهذا المعامل هي ‎'<???>'‎. ملاحظة: حلّ هذا التابع محلّ التابع readfp()‎ في الإصدار 3.2 من بايثون. أمثلة يبين المثال التالي طريقة عمل التابع: import configparser, os config = ...

المزيد حول المتغيرات في Bash

يمكن للمتغير أن يحتوي أي نوع من البيانات ما لم يُصرح بخلاف ذلك بوضوح، وتُضبط المتغيرات الساكنة (Constant Variables) باستخدام أمر readonly. وتحتوي المصفوفة على مجموعة من المتغيرات، وإن صُرح بنوع معين من البيانات لتلك المصفوفة فإن جميع العناصر داخلها ستُضبط على احتواء ذلك النوع فقط من البيانات. كذلك تسمح مزايا Bash بإحلال وتحويل المتغيرات بسرعة، وتتضمن العمليات القياسية حساب طول المتغير والتوسعات الحسابية عليه وإحلال محتواه أو جزء من محتواه. أنواع المتغيرات في Bash شرح للقيم العامة للمتغيرات والمتغيرات ...

الصنف configparser.RawConfigParser()‎‎ في بايثون

هذه الكائنات هي النسخة القديمة من كائنات ConfigParser. عملية الاستيفاء interpolation معطّلة افتراضيًا في هذه الكائنات ويمكن استخدام أسماء أقسام وخيارات وقيم غير نصية عن طريق التابعين غير الآمنين add_section و set، إضافة إلى المعامل المفتاحي defaults=‎. البنية العامة configparser.RawConfigParser(defaults=None, dict_type=dict, allow_no_value=False, *, delimiters=('=', ':'), comment_prefixes=('#', ';'), inline_comment_prefixes=None, strict=True, empty_lines_in_values=True, default_section=configparser.DEFAULTSECT[, interpolation]) ملاحظات: أصبح نوع القاموس الافتراضي في المعامل dict_type هو القاموس العادي dict، وذلك لأنّه أصبح يحتفظ بترتيب إدراج العناصر فيه. ينصح باستخدام كائنات ConfigParser التي تتحقّق من أنواع ...

أساسيات كتابة برامج Bash

في أي صدفة سيعمل البرنامج؟ يجب أن تحدد الصدفة التي ستنفِّذ البرنامج إذا أردت تنفيذه في صدفة فرعية، فقد لا تكون الصدفة التي كتبت فيها البرنامج هي الصدفة الافتراضية لنظامك، وعليه قد تُنتِج أوامر برنامجك أخطاءً عند تنفيذها في الصدفة الخطأ. يحدد أول سطر في البرنامج نوع الصدفة، ويجب أن يكون أول محرفين في ذلك السطر !#، ثم يتلو ذلك مسار الصدفة التي ستنفِّذ البرنامج. كذلك لا تبدأ برنامجك بسطر فارغ إذ تُقرأ الأسطر الفارغة على أنها أسطر أيضًا، وستبدأ ...

كتابة برامج Bash تفاعلية

سنتعلم في هذا القسم كيف نُدخل تعليقات المستخدم وكيف نطلب من المستخدم إدخال بيانات، وذلك عادة باستخدام بُنية echo/read، كما سنناقش كيف يمكن استخدام الملفات كمُدخلات ومخرجات باستخدام واصفات الملفات وإعادة التوجيه، وكيف يمكن جمع ذلك مع الحصول على مُدخلات من المستخدم. ويركز هذا الباب أيضًا على أهمية توفير رسائل مفصلة لمن يستخدم برامج الصدفة التي نكتبها، فمن الأفضل أن تعطي معلومات أكثر من اللازم بدلًا من كتابة توثيق موجز. مستندات Here هي إحدى أنواع بُنى الصدفة التي تسمح بإنشاء ...

عرض رسائل المستخدم في Bash

برامج تفاعلية أم غير تفاعلية؟ تعمل بعض برامج الصدفة (shell scripts) دون أي تدخل من المستخدم ويطلق عليها برامج غير تفاعلية، ومن بعض مزايا تلك البرامج أنها تعمل بشكل متوقع في كل مرة، ويمكنها العمل في الخلفية أيضًا. لكن باقي برامج الصدفة تحتاج إدخالًا من المستخدم أو تحتاج أن تطبع رسائل للمستخدم أثناء عملها، ولذلك النوع من البرامج مزايا كذلك، إذ يمكن بناء برامج أكثر مرونة، ويمكن للمستخدم تخصيص البرنامج أثناء تشغيله أو جعله يتصرف بأشكال مختلفة، كما يمكن للبرنامج ...

وحدات البناء الأساسية في Bash

وحدات بناء الصدفة البنية اللغوية للصدفة (Shell Syntax) إن كان المُدخَل ليس تعليقًا (comment) فإن الصدفة تقرؤه وتقسمه إلى كلمات ومعامِلات مطبِّقة قواعد الاقتباس (quoting rules) لتحدد معنى كل مِحرَف (character)، ثم تُترجَم تلك الكلمات والمعامِلات إلى أوامر وعناصر أخرى ينتج عنها حالة الخروج المناسبة للعملية. ولا تُطبَّق آلية fork-exec التي ذكرناها في تنفيذ الأوامر في Bash إلا بعد أن تحلل الصدفة المُدخلات وفقًا للخطوات الآتية: تقرأ الصدفة المُدخلات من ملف، سواء من نص (string) أو من طرفية المستخدم. يُقسَّم ...

إنشاء وتشغيل برنامج Bash

الكتابة والتسمية إن كان لديك سلسلة أوامر تنفذها بشكل متكرر وتريد اختصار وقت تنفيذها أو تنفيذها بشكل آلي، فيمكنك وضعها في ملف فارغ يكتب بصيغة معينة وتقرؤه الصدفة على أنه برنامج تنفذه عند استدعاءه بكتابة اسم الملف الذي يحويه، وتسمى تلك البرامج ببرامج الصدفة أو شيفرات الصدفة النصية (Shell Scripts). ويمكن استخدام تلك البرامج لأتمتة المهام باستخدام أداة cron أو في إجراءات الإقلاع وإيقاف التشغيل في أنظمة يونكس، حيث يُحدَّد أسلوب عمل العفاريت (daemons) والخدمات في شيفرات init النصية (init ...

التابع ConfigParser.read_dict()‎‎ في بايثون

يحمّل التابع الإعدادات من أي كائن يوفّر تابعًا شبيهًا بالتابع items()‎ في كائنات dict. تتضمّن المفاتيح أسماء الأقسام، أمّا القيم فعبارة عن قواميس تتضمّن المفاتيح والقيم التي تنطوي عليها الأقسام. إن كان القاموس المستخدم قادرًا على الاحتفاظ بترتيب العناصر، فستضاف الأقسام ومفاتيحها بحسب الترتيب. تُحوّل القيم إلى سلاسل نصية تلقائيًا. يمكن استخدام هذا التابع لنسخ الحالة بين المحلّلات المختلفة. البنية العامة read_dict(dictionary, source='<dict>') ‎المعاملات dictionary القاموس الذي سيقرأ التابع منه الإعدادات. ‎source معامل اختياري يحدد اسمًا خاصًّا بالسياق context-specific name ...

استخدام الأمر المُضمَّن Shift في Bash

وظيفة أمر shift هو أحد أوامر صدفة بورن التي تأتي مع صدفة Bash أيضًا، ويأخذ هذا الأمر وسيطًا (argument) واحدًا ويكون ذلك الوسيط رقمًا، وتُنقل المعامِلات الموضعية إلى اليسار بمقدار هذا الرقم "N"، أما المعامِلات التي تلي ذلك، من 1+N وما بعده إلى #$ فإن أسماءها تُغيَّر إلى أسماء متغيرات من 1$ إلى #$ +1 - N. فمثلًا لنقل أن لديك أمرًا يأخذ عشرة وسائط، وN تساوي 4، إذًا 4$ تصبح 1$، و 5$ تصبح 2$ وهكذا إلى أن تصل ...

الوحدة dbm‎.ndbm في بايثون

تقدّم وحدة dbm.ndbm واجهة برمجية لمكتبة ‎"(n)dbm"‎ في يونكس. تسلك كائنات dbm سلوك كائنات الربط (القواميس) باستثناء أنّ المفاتيح والقيم تخزّن دائمًا كبايتات. لا تؤدي طباعة كائنات dbm إلى طباعة المفاتيح والقيم، ولا تدعم هذه الكائنات التابعين items()‎ و values()‎. يمكن استخدام هذه الوحدة مع واجهة ndbm الكلاسيكية أو مع واجهة GNU GDBM التوافقية. ستحاول شيفرة configure في يونكس أن تحدد موقع ملف الترويسة header file المناسب لتبسيط عملية بناء هذه الوحدة. الاستثناءات الاستثناء dbm.ndbm.error يطلق هذا الاستثناء عند حدوث ...

التابع File::Stat.setuid?‎ في روبي

يتحقق التابع setuid?‎ إن كان البت uid (بت معرِّف المستخدم المالك) مضبوطًا للملف الذي يشير إليه الكائن File::Stat المعطى. البنية العامة setuid? → true or false القيمة المعادة تعاد القيمة true إن كان البت uid (بت معرِّف المستخدم المالك) مضبوطًا للملف الذي يشير إليه الكائن File::Stat، أو تعاد القيمة false إن لم يكن ذلك البت مضبوطًا أو لم يكن نظام التشغيل يدعم هذه الميزة. أمثلة مثال على استعمال التابع setuid?‎: File.stat("/bin/su").setuid? #=> true انظر أيضًا التابع executable?‎: يتحقق إن كان الملف الذي يشير إليه ...

التابع File::Stat.writable?‎ في روبي

يتحقق التابع writable?‎ إن كان الملف الذي يشير إليه الكائن File::Stat المعطى قابلًا للكتابة من طرف مُعرِّف المستخدم الفعلي للعملية الحالية. البنية العامة writable? → true or false القيمة المعادة تعاد القيمة true إن كان الملف الذي يشير إليه الكائن File::Stat المعطى قابلًا للكتابة من طرف مُعرِّف المستخدم الفعلي للعملية الحالية. خلا ذلك، تعاد القيمة false. أمثلة مثال على استعمال التابع writable?‎: انظر أيضًا التابع readable?‎: يتحقق إن كان الملف الذي يشير إليه الكائن File::Stat المعطى قابلًا للقراءة من طرف ...

التابع File::Stat.executable_real?‎ في روبي

يشبه التابع executable_real?‎ التابع executable?‎ تمامًا باستثناء أنه يجري عملية التحقق باستعمال المعرِّف الحقيقي لمالك العملية. البنية العامة executable_real? → true or false القيمة المعادة تعاد القيمة true إن كان الملف الذي يشير إليه الكائن File::Stat المعطى قابلًا للتنفيذ أو إن كان نظام التشغيل لا يفرِّق بين الملفات القابلة للتنفيذ من الملفات الغير قابلة للتنفيذ. خلا ذلك، تعاد القيمة false. انظر أيضا التابع executable?‎: يتحقق إن كان الملف الذي يشير إليه الكائن File::Stat الذي استدعي معه قابلًا للتنفيذ أو إن كان نظام ...

التابع File::Stat.ctime في روبي

يعيد التابع ctime وقت آخر تغيير أجري على الملف الذي استدعي معه. يشير وقت التغيير هذا إلى الزمن الذي تغيرت فيه معلومات المجلد حول الملف وليس الملف نفسه. البنية العامة ctime → aTime القيمة المعادة يعاد كائن من النوع Time يمثِّل وقت آخر تغيير جرى للمعلومات حول الملف المعطى. في أنظمة ويندوز (أي أنظمة الملفات NTFS)، يعاد وقت إنشاء الملف وليس وقت التغيير. أمثلة مثال على استعمال التابع ctime: File.stat("testfile").ctime #=> Wed Apr 09 08:53:14 CDT 2003 انظر أيضًا التابع atime: يعيد زمن ...

عرض (50 السابقة | 50 التالية) (20 | 50 | 100 | 250 | 500).