نتائج البحث

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

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

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

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

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

استخدام البُنية case

حالات مُبسطة قد يكون من السهل اللجوء إلى استخدام عبارات if لبداهة أسلوبها، لكن تلك السهولة تنقلب إلى حيرة حين تواجه بضعة اختيارات مختلفة لإجراءات محتملة يجب اتخاذها، ولمثل تلك الحالات نستخدم عبارة case، وبنيتها اللغوية هي كما يلي: case EXPRESSION in CASE1) COMMAND-LIST;; CASE2) COMMAND-LIST;; ... CASEN) COMMAND-LIST;; esac وتطابق كل حالة في التعبير السابق نمطًا (pattern)، وتُنفَّذ الأوامر التي في قائمة COMMAND-LIST لأول تطابق، ويُستخدم محرف الأنبوب | لفصل الأنماط المتعددة، وينهي معامِل ( قائمة الأنماط، ويُطلق اسم البند ...

الاستخدامات المتقدمة لعبارة 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> الفرق بين [] و [[]] على عكس ]، فإن ]] تمنع انقسام الكلمات في ...

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

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

مطابقة الأنماط باستخدام ميزات Bash

مدى المحارف Character Ranges خلافًا لأمر grep والتعابير النمطية (regular expressions) فإن لدينا حالات كثيرة لمطابقة الأنماط التي يمكنك إجراؤها في الصدفة مباشرة دون الحاجة إلى استخدام برنامج خارجي، فلعلك تعلم أن محرفي * و ? يطابقان أي نص أو محرف وحيد -على الترتيب-، ومن أجل مطابقة هذين المحرفيْن تحديدًا، ضع حول كل منهما علامات اقتباس مزدوجة: hsoub ~> touch "*" hsoub ~> ls "*" * يمكنك استخدام الأقواس المربعة لمطابقة أي محرف أو مجموعة محارف بداخل تلك الأقواس إن فُصلت أزواج المحارف ...

الأمران Break و Continue

أمر Break تُستخدم عبارة Break للخروج من الحلقة التكرارية الحالية قبل موعد خروجها الأصلي، ويحدث هذا في الحالات التي لا تعرف فيها عدد المرات التي يجب أن تنفذها الحلقة، كأن تعتمد على إدخال المستخدم مثلًا. يوضح المثال التالي حلقة while يمكن مقاطعتها، وهو مثال مُطوَّر من برنامج wisdom.sh من المثال المشروح في استخدام مُدخلات لوحة المفاتيح للتحكم في حلقة while : #!/bin/bash # هذا البرنامج يطبع أمثالًا ونصائح # يمكنك الخروج الآن بطريقة أفضل. FORTUNE=/usr/games/fortune while true; do echo "On which topic do you want advice?" echo ...

 التابع ENV.to_a في روبي

يحول التابع to_a متغيرات البيئة إلى مصفوفة مكونة من مصفوفات فرعية تضم أسماء وقيم تلك المتغيرات. البنية العامة to_a → Array القيمة المعادة تُعاد مصفوفة مكونة من مصفوفات فرعية تضم أسماء وقيم متغيرات البيئة. أمثلة مثال عن استخدام التابع to_a: ENV.to_a # => [["TERM", "xterm-color"], ["SHELL", "/bin/bash"], ...] انظر أيضًا التابع to_h: ينشئ جدولًا من النوع Hash يحوي نسخةً من متغيرات البيئة.  التابع to_s: يعيد السلسلة النصية “ENV”. مصادر قسم التابع to_a في الصنف ENV في توثيق روبي الرسمي.

الأعداد المركبة في بايثون

تتكوّن الأعداد المركبّة من جزأين حقيقي وتخيّلي وكلاهما من الأعداد العشرية ذات الفاصلة العائمة float ، ويمكن استخدام الخاصيتين z.real و z.imagلاستخراج هذين الجزأين من عدد تخيلي z. يستخدم الحرفان 'j' أو 'J' للتعبير عن الأعداد المركبة كما هو موضح في الأمثلة التالية: >>>w = 3j #عدد مركّب الجزء الحقيقي فيه يساوي 0 >>>x = 2+5J >>>y = -3-9j >>>z = 3.1 + 4.5J >>>z.real 3.1 >>> z.imag 4.5 الدالة complex()‎ تعيد الدّالة complex()‎ عددًا مُركّبًا (complex number) حسب العدد الحقيقي والعدد التّخيّلي المُعطيين، أو تُحوّل ...

الأعداد المركبة في بايثون

تتكوّن الأعداد المركبّة من جزأين حقيقي وتخيّلي وكلاهما من الأعداد العشرية ذات الفاصلة العائمة float ، ويمكن استخدام الخاصيتين z.real و z.imagلاستخراج هذين الجزأين من عدد تخيلي z. يستخدم الحرفان 'j' أو 'J' للتعبير عن الأعداد المركبة كما هو موضح في الأمثلة التالية: >>>w = 3j #عدد مركّب الجزء الحقيقي فيه يساوي 0 >>>x = 2+5J >>>y = -3-9j >>>z = 3.1 + 4.5J >>>z.real 3.1 >>> z.imag 4.5 الدالة complex()‎ تعيد الدّالة complex()‎ عددًا مُركّبًا (complex number) حسب العدد الحقيقي والعدد التّخيّلي المُعطيين، أو تُحوّل ...

التابع types.coroutine()‎ في بايثون

تحوّل هذه الدالة دالة مولّدة إلى دالة coroutine تعيد coroutine مبنيًا على مولّد. يكون هذا الـ coroutine هو كائن تكرار مولِّد، ويعدّ كذلك كائن coroutine ومن نوع awaitable. ولكن ليس بالضرورة أن يستخدم التابع ‎__await__()‎. ملاحظة: هذه الدالة جديدة في الإصدار 3.5 من بايثون. البنية العامة ‎types.coroutine(gen_func) المعاملات gen_func إن كانت دالة مولدة، فسيجري تعديلها في مكانها. وإن لم تكن دالة مولدة، فسيجري تغليفها. إن كانت الدالة تعيد نسخة من collections.abc.Generator، فإنّ النسخة ستُغلّف في كائن وسيط من نوع awaitable. ...

الدالة types.resolve_bases()‎ في بايثون

تحلّل الدالة مدخلات (ترتيب تحليل التوابع MRO) بصورة ديناميكية وكما هو محدّد في PEP 560. ملاحظة: هذه الدالة جديدة في الإصدار 3.7 من اللغة. البنية العامة types.resolve_bases(bases) المعاملات bases الأصناف الأساسية المراد تحليلها. القيمة المعادة تبحث هذه الدالة عن العناصر في الأصناف المعطاة في المعامل bases والتي لا تكون نسخًا من الصنف type، وتعيد الدالة صفًّا يُستبدل فيه كل كائن مماثل ولا يملك التابع __mro_entries__ بنتيجة استدعاء هذا التابع بعد فكّ تحزيمها. أما إن كان الصنف المعطى في المعامل bases ...

عمليات البايتات ومصفوفات البايتات في بايثون

تدعم كائنات البايتات ومصفوفات البايتات عمليات التسلسلات الشائعة، وتتوافق هذه الكائنات مع العوامل من النوع ذاته إضافة إلى أي كائن شبيه بالبايتات. ونظرًا لهذه المرونة العالية، يمكن استخدام البايتات في أي نوع من العمليات دون حدوث أي خطأ، ولكن النوع المعاد يعتمد على ترتيب العوامل. ملاحظة: لا يمكن تمرير سلاسل نصية كوسائط في التوابع التي تعمل على البايتات ومصفوفات البايتات كما لا يمكن تمرير البايتات في توابع السلاسل النصية. فعلى سبيل المثال يجب كتابة: a = "abc" b = a.replace("a", "f") و: ...

الدالة types.new_class()‎ في بايثون

تنشئ هذه الدالة ديناميكيًا كائن صنف باستخدام صنف ميتا (metaclass) المناسب. ملاحظة: هذه الدالة جديدة في الإصدار 3.3 من اللغة. البنية العامة ‎types.new_class(name, bases=(), kwds=None, exec_body=None) المعاملات name اسم الصنف المراد إنشاؤه. bases الأصناف الأساسية التي سيرث منها الصنف الجديد (حسب الترتيب). kwds المعاملات المفتاحية (مثل صنف ميتا). exec_body استدعاء خلفي callback يُستخدم لإضافة نطاق الأسماء الخاصّ بالصنف المنشئ حديثًا. يجب أن يأخذ نطاق الأسماء الخاصّ بالصنف كمعامل وحيد وأن يحدّث نطاق الأسماء مباشرة بمحتويات الصنف. في حال عدم تقديم ...

عمليات البايتات ومصفوفات البايتات في بايثون

تدعم كائنات البايتات ومصفوفات البايتات عمليات التسلسلات الشائعة، وتتوافق هذه الكائنات مع العوامل من النوع ذاته إضافة إلى أي كائن شبيه بالبايتات. ونظرًا لهذه المرونة العالية، يمكن استخدام البايتات في أي نوع من العمليات دون حدوث أي خطأ، ولكن النوع المعاد يعتمد على ترتيب العوامل. ملاحظة: لا يمكن تمرير سلاسل نصية كوسائط في التوابع التي تعمل على البايتات ومصفوفات البايتات كما لا يمكن تمرير البايتات في توابع السلاسل النصية. فعلى سبيل المثال يجب كتابة: a = "abc" b = a.replace("a", "f") و: ...

عمليات الأعداد الثنائية Bitwise في بايثون

يمكن تنفيذ عمليات الأعداد الثنائية Bitwise على الأعداد الصحيحة فقط، وتعامل الأعداد السالبة معاملة قيمها المكمّلة من الأساس 2 (يُفترض هنا وجود عدد كافٍ من البتات لكي لا يحدث أي فيضان [overflow] أثناء العملية). تمتلك عمليات الأعداد الثنائية أولوية أدنى من العمليات العددية وأعلى من عمليات المقارنة، ويمتلك العامل الأحادي ~ نفس الأولوية التي تمتلكها العمليات العددية الأحادية (+ و -). يعرض الجدول التالي قائمة بعمليات الأعداد الثنائية مرتّبة حسب أولويتها ترتيبًا تصاعديًا: العملية النتيجة ملاحظات x | y x ...

التابع ?Object.taint في روبي

يصم التابع taint الكائن الذي استدعي معه بأنه كائنٌ فاسد (tainted). الكائنات المُعلَّمة على أنها فاسدة ستكون محظورةً عن مختلف التوابع المُضمَّنة (built-in methods). الهدف من هذا الأمر هو منع البيانات الغير آمنة مثل وسائط سطر الأوامر أو السلاسل النصية من القراءة من التابع Kernel.gets، أو من الوصول غير المُصرَّح إلى أنظمة المستخدمين. استخدم التابع ?tainted للتحقق إذا كان الكائن فاسدا أم لا. لا يجب أن تزيل إشارة الفساد من كائن يحملها إلا إذا فصحته شيفرتك البرمجية وقرَّرت أنه آمن. ...

عمليات الأعداد الثنائية Bitwise في بايثون

يمكن تنفيذ عمليات الأعداد الثنائية Bitwise على الأعداد الصحيحة فقط، وتعامل الأعداد السالبة معاملة قيمها المكمّلة من الأساس 2 (يُفترض هنا وجود عدد كافٍ من البتات لكي لا يحدث أي فيضان [overflow] أثناء العملية). تمتلك عمليات الأعداد الثنائية أولوية أدنى من العمليات العددية وأعلى من عمليات المقارنة، ويمتلك العامل الأحادي ~ نفس الأولوية التي تمتلكها العمليات العددية الأحادية (+ و -). يعرض الجدول التالي قائمة بعمليات الأعداد الثنائية مرتّبة حسب أولويتها ترتيبًا تصاعديًا: العملية النتيجة ملاحظات x | y x ...

الأعداد العشرية (ذات الفاصلة العائمة) float في بايثون

الأعداد العشرية (ذات الفاصلة العائمة floating point) هي الأعداد التي تتضمن فاصلة عشرية أو علامة أسية: >>> x = 2.5 >>> y = -1.609 >>> z = 3e4 >>> print(z) 30000.0 >>> a = 10. >>> b = .001 >>> c = 0e0 >>> print(a, b, c) 10.0 0.001 0.0 يمكن الحصول على معلومات حول دقّة الأعداد العشرية والتمثيل الداخلي لها في الحاسوب الذي يعمل عليه البرنامج عن طريق مكتبة sys.float_info: >>> import sys >>> sys.float_info sys.float_info(max=1.7976931348623157e+308, max_exp=1024, max_10_exp=308, min=2.2250738585072014e-308, min_exp=-1021, min_10_exp=-307, dig=15, mant_dig=53, epsilon=2.220446049250313e-16, radix=2, rounds=1) التحويل إلى الأعداد العشرية ...

الأعداد الصحيحة في بايثون

العدد الصحيح integer هو أي عدد موجب أو سالب لا يتضمن فاصلة عشرية، ويمكن تمثيله بالنظام العشري (decimal، الأساس 10) والست عشري (hexadecimal، الأساس 16) والثماني (octal، الأساس 8) والثنائي (binary، الأساس 2). يجب أن يكون العدد الصحيح مسبوقًا بالقيمة 0o لاستخدامه في النظام الثماني، وبالقيمة 0x لاستخدامه في النظام الست عشري، وبالقيمة 0b لاستخدامه في النظام الثنائي، وفيما يلي مجموعة من الأمثلة: >>> q = 3571 # عدد صحيح في النظام العشري >>> q ...

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