نتائج البحث

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

الأمران 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 ...

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

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

JavaScript/Topics/Statements

في هذا القسم جميع التعابير البرمجية الموجودة في لغة JavaScript. التحكم في التنفيذ block تُستخدَم الأقسام الكتلية لتجميع عدِّة تعابير برمجية معًا، ويُعرَّف القسم بزوجين من الأقواس المعقوفة {}. break يإنهاء حلقة التكرار الحالية أو التعبير switch أو label، وستنقل تنفيذ البرنامج إلى التعبير البرمجي الذي يلي التعبير الذي انتهى. continue تجاوز تنفيذ التعابير البرمجية في التكرار الحالي (iteration) في حلقة التكرار الحالية أو حلقة التكرار المسماة (عبر لافتة)، وسيستمر تنفيذ الحلقة بدءًا من التكرار التالي. Empty يُستخدَم لتجنب توفير تعبير برمجي في ...

continue في JavaScript

التعبير البرمجي continue يؤدي إلى تجاوز تنفيذ التعابير البرمجية في التكرار الحالي (iteration) في حلقة التكرار الحالية أو حلقة التكرار المسماة (عبر لافتة)، وسيستمر تنفيذ الحلقة بدءًا من التكرار التالي. البنية العامة continue [label]; label مُعرِّفٌ اختياريٌ مرتبطٌ بلافتة التعبير البرمجي. الوصف على النقيض من التعبير break، لن يؤدي التعبير continue إلى إنهاء تنفيذ الحلقة كليًّا، وإنما: في حلقات while سيؤدي إلى الانتقال إلى الشرط. في حلقات for سيؤدي إلى الانتقال إلى تعبير تحديث معاملات حلقة التكرار. يمكن أن يضمّ ...

Bash/Topics

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

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

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

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

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

حلقة for في Bash

كيفية عمل حلقة for التكرارية حلقة for هي أول وحدة تكرارية في الصدفة من بين ثلاث وحدات، وتسمح تلك الحلقة بتخصيص قائمة من القِيَم، وتُنفَّذ قائمة من الأوامر لكل قيمة من تلك القيم. والبنية اللغوية لهذه الحلقة التكرارية هي كالآتي: for NAME [in LIST ]; do COMMANDS; done إن لم تكن [ in LIST] موجودة فيتم استبدال @$ in بها، وتنفذ for الأوامر (COMMANDS) مرة واحدة لكل معامل موضعي مضبوط على قيمة، انظر المتغيرات في Bash وفحص وسائط سطر الأوامر. وتكون ...

continue في PHP

(PHP 4, PHP 5, PHP 7) تستخدم continue في الحلقات التكرارية لتجاوز ما يأتي بعدها في الحلقة التكرارية والاستمرار في تنفيذ الشيفرة حسب الشرط المعتمد في الحلقة ثم الانتقال إلى بداية الدورة التالية. تأخذ continue معاملًا عدديًّا اختياريًا يمكن من خلاله تحديد عدد الحلقات التكرارية المحيطة بها والتي يجب تجاوزها إلى النهاية. القيمة الافتراضية هي 1 والتي تعني الانتقال إلى نهاية الحلقة الحالية. ملاحظة: تعدّ عبارة switch في PHP من الحلقات التكرارية عند الحديث عن continue. تسلك continue سلوك break ...

continue في PHP

(PHP 4, PHP 5, PHP 7) تستخدم continue في الحلقات التكرارية لتجاوز ما يأتي بعدها في الحلقة التكرارية والاستمرار في تنفيذ الشيفرة حسب الشرط المعتمد في الحلقة ثم الانتقال إلى بداية الدورة التالية. تأخذ continue معاملًا عدديًّا اختياريًا يمكن من خلاله تحديد عدد الحلقات التكرارية المحيطة بها والتي يجب تجاوزها إلى النهاية. القيمة الافتراضية هي 1 والتي تعني الانتقال إلى نهاية الحلقة الحالية. ملاحظة: تعدّ عبارة switch في PHP من الحلقات التكرارية عند الحديث عن continue. تسلك continue سلوك break ...

while في بايثون

تستخدم عبارة while لتكرار عملية التنفيذ ما دام الشرط المقدّم إلى هذه العبارة صحيحًا، وتأخذ عبارة while الصيغة التالية: while expression: statement مثال: >>> a, b = 0, 1 >>> while b < 10: ...     print(b) ...     a, b = b, a+b ... 1 1 2 3 5 8 تستمر هذه العبارة في تكرار تنفيذ الشيفرة ما دام الشرط صحيحًا True، أما إذا كان نتيجة الشرط خطأً False (قد يحدث ذلك في الدورة الأولى من الحلقة) فستنتقل عملية التنفيذ إلى عبارة else في حال وجودها، وتوقف اللغة ...

اللافتات label في JavaScript

التعبير البرمجي label يمكن أن يُستخدَم مع التعبير البرمجي break أو continue، وهو يوضع قبل التعابير البرمجية لإضافة لافتة (مُعرِّف) لها يمكن الإشارة إليها. لاحظ أنَّ من غير الشائع استخدام حلقات تكرار مع لافتات (labels)، وتُستخدَم عادةً الدوال بدلًا القيام بقفزات بين حلقات التكرار. البنية العامة label : statement label لافتة للتعبير البرمجي، ويمكن أن تكون أيّ مُعرِّف في JavaScript صالح (وليس كلمةً محجوزةً). statement التعابير البرمجية التي ستُضاف اللافتة إليها، ويمكن استخدام التعبير البرمجي break مع أيّ ...

مقدمة إلى if في Bash

قد تحتاج إلى تحديد سلاسل إجراءات مختلفة داخل برامج الصدفة (shell scripts) بناءً على نجاح تنفيذ أمر أو فشله، وتأتي أداة if الشرطية من أجل مثل تلك الحالات، وأصغر بنية لغوية لأمر if هي التالية: if TEST-COMMANDS; then CONSEQUENT-COMMANDS; fi تُنفَّذ قائمة أوامر الاختبار TEST-COMMANDS، ثم تُنفَّذ قائمة الأوامر التابعة CONSEQUENT-COMMANDS إن كانت حالة الإعادة لها هي صفر. وتكون حالة الإعادة هي حالة خروج آخر أمر تم تنفيذه، أو تكون صفرًا إن لم تتحقق أي حالة من أوامر الاختبار. يتضمن أمر ...

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

تُولّد الكائنات Continuation بواسطة التابع Kernel.callcc بعد استيراد continuation عبر require. تحمل هذه الكائنات عنوان العودة (return address) وسياق التنفيذ (execution context)، مما يتيح العودة إلى نهاية الكتلة callcc من أي مكان في البرنامج. كائنات الصنف Continuation مشابهة لحد ما البنية setjmp/longjmp في لغة C (على الرغم من أنَّها تحتوي على حالات أكثر، لذلك يمكن اعتبارها أقرب إلى المهام الفرعية [threads]). على سبيل المثال: require "continuation" arr = [ "Freddie", "Herbie", "Ron", "Max", "Ringo" ] callcc{|cc| $cc = cc} puts(message = arr.shift) $cc.call unless message ...

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

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

صدفة Bash وبرامج Bash

تعريف بصدفة Bash Bash هي صدفة نظام جنو التي تتوافق مع صدفة بورن وتزيد عليها بعدة مزايا وخصائص مفيدة من باقي الصدفات، وحين تبدأ الصدفة فإنها تقرأ ملفات إعداداتها التي من أهمها ما يلي: etc/profile/ bash_profile./~ bashrc./~ كذلك تتصرف bash بشكل مختلف حين تكون في وضع تفاعلي، وهي متوافقة مع معايير POSIX وبها وضع محظور. ويمكن تقسيم أوامرها إلى ثلاث مجموعات: دوال الصدفة والأوامر المُضمَّنة والأوامر الموجودة داخل مجلد في نظامك. أيضًا، تدعم bash أوامر مضمَّنة أخرى ليست موجودة داخل ...

الكلمة continue المفتاحية في أردوينو

تتخطى الكلمة continue المفتاحية الشيفرة التي تليها في حلقة التكرار (مثل الحلقات for، أو while، أو do...while التكرارية) إلى عملية التحقق من التعبير الشرطي لتلك الحلقة ثم يُستأنَف عمل حلقة التكرار بشكل طبيعي. عمل هذه العبارة شبيه بإحداث قفزة في حلقة التكرار لتخطي تنفيذها عند تحقق شرط معين. البنية العامة continue; أمثلة في الشيفرة التالية، ستُكتب القيمة من 0 إلى 255 على الرجل PWMpin مع تخطي كتابة القيم التي تقع في المجال 41 إلى 119: for (x = 0; x ...

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

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

الإشارات في Bash

صفحة man للإشارات يحتوي نظامك على صفحة man بها كل الإشارات المتاحة، لكن قد يُفتح بطريقة مختلفة اعتمادًا على نظام تشغيلك، والطريقة التي ستجدها في أغلب أنظمة لينكس هي man 7 signal، لكن إن كنت في ريب من الأمر فحدد صفحة man والقسم الذي تريده بالضبط باستخدام أوامر مثل: man -k signal | grep list أو apropos signal | grep list ستجد أسماء الإشارات باستخدام kill -l. الإشارات إلى صدفة Bash الخاصة بك تتجاهل صدفة bash التفاعلية إشارتي SIGTERM و SIGQUIT في ...

الدوال في Bash

توفر الدوال طريقة سهلة لتجميع أوامر تحتاج إلى تنفيذها بشكل متكرر، وحين تعمل الدالة فإن المعامِلات الموضعية (positional parameter) تتغير إلى معامِلات الدالة، ثم يعاد ضبط تلك المعاملات بعد توقف الدالة إلى معاملات البرنامج المُستدعِي. وكذلك فإن الدوال تشبه برامج مصغرة (mini-scripts)، ومن ثَمَّ فإنها تولِّد رموز حالة خروج (exit codes) أو رموز حالة إعادة (return codes). مقدمة إلى الدوال في Bash نظرة عامة على الدوال في Bash والبُنى اللغوية لها ومعامِلاتها الموضعية وعرضها في الصدفة. أمثلة عن الدوال في ...

بيئة Bash

يمكن إعداد بيئة Bash على مستوى النظام ككل أو لكل مستخدم على حدة، وتُستخدم ملفات الإعدادات المختلفة من أجل ضبط سلوك الصدفة، إذ تحتوي تلك الملفات على خيارات الصدفة وإعدادات المتغيرات وتعريفات الدوال ووحدات أخرى من وحدات بناء صدفة Bash التي تيسر علينا إنشاء بيئة عمل مريحة ومنجِزة. يمكن اختيار أسماء للمتغيرات كما تشاء -نوعًا ما- باستثناء الأسماء المحجوزة لصدفة بورن وصدفة Bash والمعامِلات الخاصة (special parameters). وتستخدم Bash نظام اقتباس (quoting) لاستبعاد المعاني الخاصة من محرف أو أكثر في ...

الأفخاخ في Bash

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

التوسعات في Bash

بعد تقسيم الأمر في Bash إلى وحدات (Tokens) -انظر وحدات البناء الأساسية في Bash، البنية اللغوية للصدفة- فإن تلك الوحدات توسَّع (expanded) أو تُستبيَن (resolved)، وسنفصّل الآن تلك التوسعات وفقًا لترتيب كل منها، ثم بعد إتمام جميع التوسعات تُنفّذ عملية حذف الاقتباسات. توسُّع القوس المعقوف {} توسع القوس المعقوف هو آلية يمكن من خلالها إنشاء نصوص عشوائية (arbitrary strings)، إذ تأخذ الأنماط (patterns) التي سيُنفَّذ عليها توسع القوس المعقوف باستهلال اختياري (optional preamble) متبوع بسلسلة من النصوص تفصل بين كل ...

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

أنواع المتغيرات تُكتب متغيرات الصدفة بحروف إنجليزية كبيرة، وتحتفظ Bash بقائمة من نوعين من المتغيرات: المتغيرات العامة Global Variables ستجد المتغيرات العامة أو متغيرات البيئة (environment variables) في جميع الصدفات، ويمكن استخدام أوامر env أو printenv لعرض متغيرات البيئة، وتأتي تلك البرامج في حزمة sh-utils. إليك مثالًا لخرج أمر printenv: wiki ~> printenv CC=gcc CDPATH=.:~:/usr/local:/usr:/ CFLAGS=-O2 -fomit-frame-pointer COLORTERM=gnome-terminal CXXFLAGS=-O2 -fomit-frame-pointer DISPLAY=:0 DOMAIN=hq.garrels.be e= TOR=vi FCEDIT=vi FIGNORE=.o:~ G_BROKEN_FILENAMES=1 GDK_USE_XFT=1 GDMSESSION=Default GNOME_DESKTOP_SESSION_ID=Default GTK_RC_FILES=/etc/gtk/gtkrc:/nethome/wiki/.gtkrc-1.2-gnome2 GWMCOLOR=darkgreen GWMTERM=xterm HISTFILESIZE=5000 history_control=ignoredups HISTSIZE=2000 HOME=/nethome/wiki HOSTNAME=hsoub.hq.garrels.be INPUTRC=/etc/inputrc IRCNAME=wiki JAVA_HOME=/usr/java/j2sdk1.4.0 LANG=en_US LDFLAGS=-s LD_LIBRARY_PATH=/usr/lib/mozilla:/usr/lib/mozilla/plugins LESSCHARSET=latin1 LESS=-edfMQ LESSOPEN=|/usr/bin/lesspipe.sh %s LEX=flex LOCAL_MACHINE=hsoub LOGNAME=wiki LS_COLORS=no=00:fi=00:di=01;34:ln=01;36:pi=40;33:so=01;35:bd=40;33;01:cd=40;33;01:or=01;05;37;41:mi=01;05;37;41:ex=01;32:*.cmd=01;32:*.exe=01;32:*.com=01;32:*.btm=01;32:*.bat=01;32:*.sh=01;32:*.csh=01;32:*.tar=01;31:*.tgz=01;31:*.arj=01;31:*.taz=01;31:*.lzh=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.gz=01;31:*.bz2=01;31:*.bz=01;31:*.tz=01;31:*.rpm=01;31:*.cpio=01;31:*.jpg=01;35:*.gif=01;35:*.bmp=01;35:*.xbm=01;35:*.xpm=01;35:*.png=01;35:*.tif=01;35: MACHINES=hsoub MAILCHECK=60 MAIL=/var/mail/wiki MANPATH=/usr/man:/usr/share/man/:/usr/local/man:/usr/X11R6/man MEAN_MACHINES=hsoub MOZ_DIST_BIN=/usr/lib/mozilla MOZILLA_FIVE_HOME=/usr/lib/mozilla MOZ_PROGRAM=/usr/lib/mozilla/mozilla-bin MTOOLS_FAT_COMPATIBILITY=1 MYMALLOC=0 NNTPPORT=119 NNTPSERVER=news NPX_PLUGIN_PATH=/plugin/ns4plugin/:/usr/lib/netscape/plugins OLDPWD=/nethome/wiki OS=Linux PAGER=less PATH=/nethome/wiki/bin.Linux:/nethome/wiki/bin:/usr/local/bin:/usr/local/sbin:/usr/X11R6/bin:/usr/bin:/usr/sbin:/bin:/sbin:. PS1=\[\033[1;44m\]wiki is in \w\[\033[0m\] PS2=More input> PWD=/nethome/wiki SESSION_MANAGER=local/hsoub.hq.garrels.be:/tmp/.ICE-unix/22106 SHELL=/bin/bash SHELL_LOGIN=--login SHLVL=2 SSH_AGENT_PID=22161 SSH_ASKPASS=/usr/libexec/openssh/gnome-ssh-askpass SSH_AUTH_SOCK=/tmp/ssh-XXmhQ4fC/agent.22106 START_WM=twm TERM=xterm TYPE=type USERNAME=wiki USER=wiki _=/usr/bin/printenv VISUAL=vi WINDOWID=20971661 XAPPLRESDIR=/nethome/wiki/app-defaults XAUTHORITY=/nethome/wiki/.Xauthority XENVIRONMENT=/nethome/wiki/.Xdefaults XFILESEARCHPATH=/usr/X11R6/lib/X11/%L/%T/%N%C%S:/usr/X11R6/lib/X11/%l/%T/%N%C%S:/usr/X11R6/lib/X11/%T/%N%C%S:/usr/X11R6/lib/X11/%L/%T/%N%S:/usr/X11R6/lib/X11/%l/%T/%N%S:/usr/X11R6/lib/X11/%T/%N%S XKEYSYMDB=/usr/X11R6/lib/X11/XKeysymDB XMODIFIERS=@im=none XTERMID= XWINHOME=/usr/X11R6 X=X11R6 YACC=bison -y المتغيرات المحلية Local Variables لن تجد المتغيرات المحلية إلا في الصدفة الحالية، ويمكن استخدام أمر set -بدون خيارات- لعرض ...

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

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

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

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

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

بنى التحكم في PHP

تتكون جميع شيفرات PHP من سلسلة من العبارات (statements)، ويمكن للعبارة أن تكون إسنادًا (assignment) أو استدعاءً لدالّة، أو حلقة تكرارية، أو عبارة شرطية أو حتى عبارة لا تقوم بأي عمل على الإطلاق (عبارة فارغة). تنتهي العبارات عادة بالفاصلة المنقوطة (;)، ويمكن تجميع العبارات بإحاطتها بالأقواس المعقوفة ({}) لتصبح مجموعة عبارات (statement-group)، والتي تعدّ بدورها عبارات أيضًا. سنفصل الحديث في هذا الفصل عن أنواع متعددة من العبارات. if بنية if هي واحدة من أهم الميزات المتوفّرة في العديد من اللغات ...

المزيد من خيارات Bash

ناقشنا بعض خيارات صدفة Bash التي قد تفيدك في تنقيح برامج Bash، وسننظر الآن في مزيد من تلك الخيارات بتفصيل أكثر. عرض الخيارات استخدم خيار o- لأمر set لعرض كل خيارات الصدفة: hsoub:~> set -o allexport off braceexpand on emacs ...

ميزات صدفة Bash

صدفة bash هي الصدفة الافتراضية لنظام جنو يوفّر مشروع GNU -إذ يشير الاسم إلى GNU's Not UNIX- أدواتٍ لإدارة النظم الشبيهة بنظام يونكس، وهي نظم التشغيل الحرة والمتوافقة مع معايير يونكس. وإحدى تلك الأدوات هي bash، صَدَفة متوافقة مع صدفة sh الأولى التي كتبها ستيفن بورن، وبها خصائص مفيدة من صدفتي Korn و C -اختصاراتهما ksh و csh على الترتيب-. وقد صُممت لتتوافق مع معيار IEEE POSIX P1003.2/ISO 9 945.2 للصدفات والبرامج.  كما أن بها مزايا محسّنة عن sh سواء ...

حلقة until في Bash

كيفية عمل حلقة until تشبه هذه الحلقةُ التكرارية حلقةَ while باستثناء أن الحلقة هنا تُنفَّذ إلى أن يُنفَّذ أمر اختباري TEST-COMMAND بنجاح، فتظل الحلقة عاملة طالما كان تنفيذ الأمر الاختباري يفشل. والبنية اللغوية لها تشبه البنية اللغوية لحلقة while : until TEST-COMMAND; do CONSEQUENT-COMMANDS; done وحالة الإعادة لهذه الحلقة هي نفسها حالة الخروج لآخر أمر يُنفَّذ من الأوامر التابعة CONSEQUENT-COMMANDS أو تكون صفرًا إن لم يُنفَّذ أي أمر. وقد يكون الأمر الاختباري TEST-COMMAND أي أمر يمكن أن يخرج بحالة نجاح أو فشل، ...

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

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

اقتباس المحارف في 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 مزايا تنقيح شاملة لعل أشهرها هو بدء صدفة فرعية بخيار x- الذي سيبدأ الصدفة بالكامل في طور التنقيح، وستُطبَع آثار كل أمر إضافة إلى وسائطه (arguments) إلى خَرج قياسي (standard output) بعد توسيع الأوامر لكن قبل تنفيذها. الشيفرة التالية هي لبرنامج commented-script1.sh من مثال أساسيات كتابة برامج Bash، وقد استدعينا الصدفة في طور التنقيح ...

الأوامر البديلة في Bash

فائدة الأوامر البديلة يسمح الأمر البديل (Alias) بوضع كلمة واحدة مكان مقطع نصي (string)، وذلك إن استُخدم كأول كلمة من أمر بسيط، وتحتفظ الصدفة بقائمة من الأوامر البديلة التي يمكن ضبطها وإلغاء ضبطها بأمريْ alias و unalias. اكتب alias في سطر الأوامر لترى قائمة من الأوامر البديلة المعرَّفة للصدفة الحالية: hsoub: ~> alias alias ..='cd ..' alias ...='cd ../..' alias ....='cd ../../..' alias PAGER='less -r' alias Txterm='export TERM=xterm' alias XARGS='xargs -r' alias cdrecord='cdrecord -dev 0,0,0 -speed=8' alias e='vi' alias egrep='grep -E' alias ewformat='fdformat -n /dev/fd0u1743; ewfsck' alias fgrep='grep -F' alias ftp='ncftp -d15' alias ...

أمثلة عن الدوال في Bash

إعادة التدوير ستجد برامج كثيرة على نظامك تستخدم الدوال كطريقة منظمة لمعالجة سلسلة ما من الأوامر، ففي بعض أنظمة لينكس مثلًا ستجد الملف التعريفي etc/rc.d/init/functions/ يشار إليه كمصدر في كل شيفرات init النصية. وبهذا الأسلوب لا تحتاج إلى كتابة المهام المتكررة سوى مرة واحدة وبشكل عام أيضًا، مهام مثل تفقد ما إن كانت تعمل إحدى المهام، تشغيل أو إيقاف أحد العفاريت (daemons)، وهلم جرا. ثم إذا دعت الحاجة إلى كتابة تلك المهام مرة أخرى فإنك لا تحتاج سوى إعادة تدوير ...

العمليات على المتغيرات في 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}$ إن لم ...

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

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

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

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

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

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

ملفات تهيئة الصدفة

ملفات الإعدادات على مستوى النظام System-wide Configuration files الملف etc/profile/ تقرأ Bash التعليمات الموجودة في etc/profile/ إن استدعيْت بشكل تفاعلي عبر خيار login-- أو إن استدعيْت كـ sh ، تضبط تلك التعليمات عادة المتغيرات PATH - USER - MAIL - HOSTNAME - HISTSIZE ، وهي متغيرات تابعة للصدفة. كذلك تُضبط قيمة umask في etc/profile/ على بعض الأنظمة، أما في بعضها الآخر فإن هذا الملف يحتوي على موجّهات (pointers) لملفات الإعدادات الأخرى مثل: ملف etc/inputrc/ ، وهو ملف تهيئة على مستوى ...

البرامج الشائعة للصَّدَفة

الوظائف العامة للصدفة يفسر برنامج صَدَفة يونكس أوامر المستخدم التي يدخلها بنفسه أو التي يمكن استخراجها وقراءتها من ملف نصي يسمى شيفرة الصَّدَفة النصية (shell script) أو برنامج الصدفة (shell program). وتكون تلك الملفات النصية مفسّرة (interpreted) على خلاف الملفات المُجمّعة (compiled)، بمعنى أن الصدفة تقرأ الأوامرَ سطرًا سطرًا وتبحث عنها في النظام، على خلاف البرامج المُجمَّعة التي يحوِّل المُجمِّع (compiler) شيفرتها إلى ملف تنفيذي (executable file) مكتوب بلغة يستطيع الحاسوب فهمها -لغة الآلة-، ثم يُمكن استخدام ذلك الملف بعدها ...

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

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

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

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

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

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

الحصول على مُدخلات المستخدم في Bash

استخدام أمر read أمر read هو الأمر المتمم لأمريْ echo و printf، وبنيته اللغوية كالتالي: read [options] NAME1 NAME2 ... NAMEN يُقرأ سطر واحد من المُدخل القياسي (standard input) أو من واصف ملف (file descriptor) أُدخِل كوسيط لخيار u-، وتُعيَّن أول كلمة من السطر لأول اسم NAME1، والثانية للاسم الثاني NAME2 وهكذا، ثم تُعيَّن الكلمات المتبقية وفاصلاتها المتداخلة (intervening seperators) إلى الاسم الأخير NAMEN، أما إن كانت الكلمات المقروءة من مجرى الدخل أقل من الأسماء فتعيَّن قيم فارغة لتلك الأسماء. تُستخدم ...

إعادة التوجيه والحلقات في Bash

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

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

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

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

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

القوسان {} المعقوصان في أردوينو

القوسان المعقوصان {} (curly braces، أو تدعى braces فقط أو curly brackets) هما جزء لا يتجزأ من لغة C. يستعملان في بُنى عديدة مثل بنى التحكم وغيرها وهذا يربك أحيانًا المبتدئين أثناء تعلمهم اللغة. يجب أن يُغلَق القوس المعقوص } الافتتاحي بالقوس المعقوص { الختامي دومًا. أي يجب أن تكون الأقواس المعقوصة في حالة توازن دائمة. تتضمن بيئة عمل أردوينو (Arduino IDE) ميزة التحقق من توازن الأقواس المعقوصة. حدِّد فقط أحد الأقواس المعقوصة أو اضغط على نقطة الإدخال التي تلي ...

for في JavaScript

التعبير البرمجي for يُنشِئ حلقة تكرار تتألف من ثلاثة تعبيرات برمجية اختيارية تحيط بها أقواس وتفصل بينها فواصل منقوطة، ويليها تعبيرٌ برمجيٌ (وعادةً يكون قسمًا كتليًا [block statement]) سيُنفَّذ في كل تكرار للحلقة. البنية العامة for ([initialization]; [condition]; [final-expression]) statement initialization تعبير (يتضمن تعابير الإسناد) أو تصريح عن متغير، ويُستخدَم عادةً لتهيئة متغير العدّاد؛ وهذا التعبير قد يُصرِّح اختياريًا عن متغيرات جديدة باستخدام الكلمة المحجوزة var؛ وهذه المتغيرات ليست محليةً وتابعةً لحلقة التكرار، وإنما ستكون موجودةً في نفس ...

إنشاء قوائم باستخدام الأمر المُضمَّن select في Bash

عام استخدام أمر select البُنية اللغوية لأمر select تشبه بُنية حلقة for: select WORD [in LIST]; do RESPECTIVE-COMMANDS; done ويُستخدم أمر select من أجل إنشاء قوائم بسهولة عبر اتباع ما يلي: تُوسّع القائمة LIST مولِّدة قائمة من العناصر ويطبع التوسع في خطأ قياسي (standard error)، كما يُسبق كل عنصر من القائمة برقم. وإن لم تكن in LIST موجودة فتُطبع المعامِلات الموضعية كما لو تم تحديد @$ in. أيضًا، تُطبع قائمة LIST مرة واحدة فقط. يُطبع محث PS3 عند طباعة كل العناصر، ...

while في JavaScript

التعبير البرمجي while يُنشِئ حلقة تكرار تُنفِّذ تعبيرًا برمجيًا معيّنًا طالما كان الشرط محققًا (true)، وسيتم التحقق من الشرط قبل تنفيذ التعبير البرمجي. البنية العامة while (condition) statement condition تعبير سيتم التحقق من صحته قبل كل تكرار، وإذا كانت قيمة الشرط condition هي true فسيُنفَّذ التعبير البرمجي statement، وعندما تصبح قيمة الشرط condition مساويةً للقيمة false فسينتقل التحكم إلى التعبير البرمجي الذي يلي حلقة while. statement  التعبير البرمجي الذي سيُنفَّذ طالما كان الشرط محققًا؛ ولتنفيذ أكثر من تعبير برمجي ...

do...while في JavaScript

التعبير البرمجي do...while يُنشِئ حلقة تكرار تُنفِّذ تعبيرًا برمجيًا معيّنًا إلى أن يصبح الشرط غير محقق (false)، وسيتم التحقق من الشرط بعد تنفيذ التعبير البرمجي، مما يؤدي إلى تنفيذ التعبير البرمجي المُعيّن مرةً واحدةً على الأقل. البنية العامة do statement while (condition); statement  التعبير البرمجي الذي سيُنفَّذ مرةً واحدةً على الأقل وسيُعاد تنفيذه في كل مرة يكون فيها الشرط محققًا (أي true)؛ ولتنفيذ أكثر من تعبير برمجي فاستخدام الأقسام الكتلية (block statement) { ... } لتجميع هذا التعابير. condition ...

الاختبار الشرطي IF في SQL

تستخدم صيغة IF لاختبار شرط معين للتأكّد من تحقّقه أو عدم تحقّقه وإجراء ما يتناسب مع ذلك، وتكون البنية العامة لها بالشكل الآتي: IF condition THEN statements [ ELSEIF condition THEN statements [ ELSEIF condition THEN statements ...]] [ ELSE statements ] END IF; إذ تعبّر الكلمة condition عن الشرط المُختبَر، وكلمة statements عن التعليمات التي ستُجرى أو قد تكون تعابير بدلًا من التعليمات. ويلاحظ  في محركي PostgreSQL و Oracle أن الكلمة المفتاحية ELSEIF تصبح ELSIF، وفي محرك SQL Server ...

التابع Continuation.call في روبي

يستدعي التابع call العملية continuation. يستمر البرنامج من نهاية كتلة callcc. إذا لم تعطَ أي وسائط إلى التابع، فستعيد الكتلة callcc الأصلية القيمة nil. إما إذا أُعطي وسيطٌ واحدٌ، فستعيد callcc ذلك الوسيط. خلا ذلك، ستُعاد مصفوفة تحتوي على الوسائط الممرّرة. البنية العامة call[args, ...] أمثلة أمثلة عن استخدام معامل التابع ‎call: callcc {|cont| cont.call } #=> nil callcc {|cont| cont.call 1 } ...

 التابع Continuation.cont في روبي

يستدعي التابع cont العملية continuation. يستمر البرنامج من نهاية كتلة callcc. إذا لم تعطَ أي وسيط إلى التابع، فستعيد الكتلة callcc الأصلية القيمة nil. أمَّا إذا أُعطي وسيطٌ واحدٌ، فستعيد callcc ذلك الوسيط. خلا ذلك، ستُعاد مصفوفة تحتوي على الوسائط الممرّرة. البنية العامة cont[args, ...] أمثلة أمثلة عن استخدام معامل التابع ‎cont: callcc {|cont| cont.call } #=> nil callcc {|cont| cont.call 1 } ...

التابع callcc‎ الخاص بالصنف Kernel في روبي

يولد التابع callcc كائنًا من النوع Continuation، والذي يُمرّر إلى الكتلة البرمجية المعطاة. تحتاج إلى أن تستورد 'continuation' عبر require قبل استخدام هذا التابع. يؤدي تنفيذ cont.call إلى خروج التابع callcc (كما سيقع خلال نهاية الكتلة). القيمة التي يعيدها callcc هي قيمة الكتلة، أو القيمة المُمرّرة إلى cont.call. انظر صفحة الصف Continuation لمزيد من التفاصيل. انظر أيضًا صفحة التابع throw للتعرف على آلية بديلة لتخفيف مكدس الاستدعاءات (call stack). البنية العامة callcc {|cont| block } → obj‎ القيمة المعادة تعاد ...

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

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

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

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

إزالة رايات التحكم (Remove Control Flag)

المشكلة لديك متغيرات منطقية تعمل كرايات تحكم لتعبيرات منطقية متعددة. الحل استخدم الكلمات المفتاحية break و continue و return بدلًا من هذه المتغيرات. لم إعادة التصميم؟ تعود رايات التحكم إلى الأيام الخوالي، عندما كان يُتاح دائمًا للمبرمج "الأصيل" نقطة إدخال واحدة للدوال (سطر تعريف الدالة) ونقطة خروج واحدة (في نهاية الدالة). لكن هذا النمط المتشدد عفا عليه الزمن في لغات البرمجة الحديثة، إذ أصبح لدينا عوامل خاصة لتعديل تدفق التحكم في الحلقات وغيرها من التركيبات المُعقدة مثل: break: إيقاف الحلقة. continue: ...

أوامر الرجوع (Returns) والقفز (Jumps)

تعابير القفز تمتاز لغة Kotlin بوجود ثلاثة تعابير (expressions) لنقل سياق البرنامج وهي: return: للرجوع من أقرب دالةٍ محيطةٍ (enclosing) أو دالةٍ مجهولةٍ (anonymous function). break : تنهي أقرب حلقةٍ محيطة. continue : تستمر بالخطوة التالية لأقرب حلقةٍ محيطة. إذ يُسمَح باستخدام أيّ من التعابير السابقة كجزءٍ من تعبيرٍ أكبر، مثل: val s = person.name ?: return ونوع هذه التعابير هو Nothing type. تسمية الأوامر Break و Continue يٌتاح في لغة Kotlin تحديد تسميةٍ (label) لأيّ تعبير، إذ تتألف هذه التسمية من مُحدِّدٍ ...

while في PHP

(PHP 4, PHP 5, PHP 7) تعد حلقات while التكرارية أبسط أنواع الحلقات في PHP، وتعمل بطريقة مماثلة لنظيرتها في لغة C، والصيغة الأساسية لعبارة while هي: while (expr) statement تؤدي عبارة while وظيفةً بسيطةً، وهي تنفيذ العبارة أو العبارات التي تحتضنها بصورة متكررة ما دامت العبارة الشرطية المرتبطة بحلقة while تؤول إلى TRUE. تتحقّق اللغة من قيمة التعبير في بداية كل دورة، لهذا لن يؤدي تغيير القيمة أثناء عملية التنفيذ إلى إيقاف الدورة بل ستكمل الشيفرة ...

while في PHP

(PHP 4, PHP 5, PHP 7) تعد حلقات while التكرارية أبسط أنواع الحلقات في PHP، وتعمل بطريقة مماثلة لنظيرتها في لغة C، والصيغة الأساسية لعبارة while هي: while (expr) statement تؤدي عبارة while وظيفةً بسيطةً، وهي تنفيذ العبارة أو العبارات التي تحتضنها بصورة متكررة ما دامت العبارة الشرطية المرتبطة بحلقة while تؤول إلى TRUE. تتحقّق اللغة من قيمة التعبير في بداية كل دورة، لهذا لن يؤدي تغيير القيمة أثناء عملية التنفيذ إلى إيقاف الدورة بل ستكمل الشيفرة ...

حلقة WHILE في SQL

تهدف حلقة WHILE إلى تكرار عددٍ من التعليمات باستمرار تحقق الشرط ضمنها، إذ يُتأكَّد من تحقّق الشرط قبل البدء بتنفيذ التعليمات التي تحتويه، وتكون البنية العامّة لها: [ <<label>> ] WHILE boolean-expression LOOP statements END LOOP [ label ]; إذ يمكن تحديد تسمية label لها وتوضع التعليمات statements ضمنها بعد الكلمة المفتاحية LOOP. أما في محرك MySQL فتصبح بالشكل الآتي: [begin_label:] WHILE search_condition DO statement_list END WHILE [end_label]; وفي محرك SQL Server تكون بالشكل: WHILE boolean_expression { sql_statement | ...

تعابير تعريف الدوال المولدة في JavaScript

الكلمة المحجوزة function*‎ تُستخدَم لتعريف دالة مولِّدة داخل تعبير. البنية العامة function* name([param[, param[, ... param]]]) { statements } name اسم الدالة، ويمكن حذفه وحينئذٍ ستسمى الدالة بالدالة المجهولة؛ واسم الدالة لن يكون متاحًا إلا داخل الدالة نفسها (يمكن أن يستعمل لتنفيذها تعاوديًا [recursively]). param اسم الوسيط المُرَّر إلى الدالة، العدد الأقصى للوسائط التي يمكن تمريرها إلى الدالة يختلف حسب المحرِّك الذي يُفسِّر اللغة. statements التعابير البرمجية التي تُشكِّل جسم الدالة. الوصف تعابير تعريف الدوال المولِّدة تشبه كثيرًا (وتكاد ...

التحكم بالتدفق (Control Flow) في Kotlin

كما في أيّة لغة برمجة فإن لغة Kotlin تحتوي على تعابير للتحكم بالتدفق، وهي: تعبير if، وتعبير when، وحلقة for، وحلقة while. وتدعم كذلك الكلمتين المفتاحيّتَين continue و break المستخدَمتَين في الحلقات (راجع أوامر الرجوع والقفز returns and jump). تعبير if يُعدُّ الشرط if في لغة Kotlin تعبيرًا يعيد قيمة، وبالتالي لا حاجة للصيغة condition ? then : else لأن تعبير if يقوم بهذا الدور كما في الشيفرة الآتية: // الاستخدام الاعتيادي var max = a if (a < b) max = b // ...

for...of في JavaScript

التعبير البرمجي for...of يمر على الكائنات التي يمكن الدوران على عناصرها (iterable objects) بما في ذلك الكائن Array و Map و Set و String و TypedArray و Arguments، وتنفيذ تعابير برمجية معيّنة على قيمة كل خاصية من خاصيات تلك الكائنات. البنية العامة for (variable of iterable) { statement } variable ستُنسَد قيمة الخاصية مختلفة لهذا المتغير في كل دورة. iterable خاصيات الكائن القابلة للدوران (iterable properties). الوصف الفرق بين حلقتَي التكرار for...of و for...in التعبيران البرمجيان for...in و for...of يُستخدَمان للدوران ...

الدوال السهمية في JavaScript

تعبير الدوال السهمية (arrow function expression) له بنيةٌ عامةٌ مختصرةٌ أكثر من تعبير تعريف الدوال، ولا يملك قيم this أو arguments أو super أو new.target خاصة به؛ والدوال السهمية تناسب الدوال التي لا تكون أعضاءً في كائنٍ ما، وتلك التي لن تُستخدَم كدالة بانية. البنية العامة البنية الأساسية (param1, param2, …, paramN) => { statements } (param1, param2, …, paramN) => expression // ستُقدَّر إلى: (param1, param2, …, paramN) => { return expression; } // الأقواس اختيارية عندما يكون هنالك وسيطٌ وحيدٌ فقط (singleParam) ...

التعبير البرمجي الفارغ في JavaScript

التعبير البرمجي الفارغ (empty statement) يُستخدَم لتجنب توفير تعبير برمجي في المواضع التي تتطلب فيها JavaScript تعبيرًا برمجيًا واحدًا على الأقل. البنية العامة ; الوصف التعبير الفارغ هو فاصلة منقوطة ; الذي يُشير إلى عدم وجود تعبير لتنفيذه حتى لو تطلبت JavaScript تعبيرًا أو أكثر؛ وفي المقابل، إذا كانت JavaScript تقبل باستخدام تعبير واحد فمن الممكن استخدم الأقسام الكتلية (block statement) لتجميع أكثر من تعبير برمجي. أمثلة قد يُستخدَم التعبير البرمجي الفارغ مع حلقات التكرار، لاحظ المثال الآتي الذي فيه ...

 التابع 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 في توثيق روبي الرسمي.

التصريح عن الدوال في JavaScript

التصريح عن الدالة (function declaration) يُعرِّف دالةً لها معاملات (parameters) معيّنة. يمكن أيضًا تعريف الدوال عبر الدالة البانية Function وعبر تعابير تعريف الدوال (function expression). البنية العامة function name([param,[, param,[..., param]]]) { [statements] } name اسم الدالة. param اسم الوسيط المُرَّر إلى الدالة، العدد الأقصى للوسائط التي يمكن تمريرها إلى الدالة يختلف حسب المحرِّك الذي يُفسِّر اللغة. statements التعابير البرمجية التي تُشكِّل جسم الدالة. الوصف الدالة المُصرَّح عنها هي كائن Function يملك وصولًا إلى جميع خاصياته ودواله ولها نفس ...

الأقسام الكتلية في JavaScript

الأقسام الكتلية (block statement) تُستخدَم لتجميع عدِّة تعابير برمجية معًا، ويُعرَّف القسم بزوجٍ من الأقواس المعقوفة {}، وقد يُضاف قبله لافتة (label). البنية العامة قسم كتلي دون لافتة: { StatementList } قسم كتلي مع لافتة: LabelIdentifier: { StatementList } StatementList التعابير البرمجية المجمَّعة ضمن القسم الكتلي. LabelIdentifier لافتة label اختيارية يمكن استخدامها لتسهيل التعرّف بصريًا على القسم، أو كوجهة للتعبير break. الوصف تسمح الأقسام الكتلي لك باستخدام أكثر من تعبير برمجي في المواضع التي تتوقع JavaScript أن تتلقى تعبيرًا برمجيًا وحيدًا؛ ...

for في PHP

(PHP 4, PHP 5, PHP 7) تعدّ حلقات for النوع الأكثر تعقيدًا من الحلقات في PHP، وهي مشابهة لنظيرتها في لغة C، وتأخذ الصيغة التالية: for (expr1; expr2; expr3) statement ينفّذ التعبير expr1 مرة واحدة دون قيد أو شرط في بداية الحلقة، وينفّذ التعبير expr2 في بداية كل دورة، فإن كانت النتيجة هي TRUE فتستمر الحلقة في عملها وتنفّذ العبارات المضمّنة فيها، أما إن كانت النتيجة هي FALSE فتتوقف الحلقة عن العمل، أما التعبير expr3 فينفّذ في ...

تعابير تعريف الدوال غير المتزامنة في JavaScript

الكلمة المحجوزة async function تُستخدَم لتعريف دوال غير متزامنة ضمن تعبير (expression). طريقة أخرى لتعريف الدوال غير المتزامنة في JavaScript هي التصريح عنها. البنية العامة async function name([param[, param[, ... param]]]) { statements } name اسم الدالة، ويمكن حذفه وحينئذٍ ستسمى الدالة بالدالة المجهولة؛ واسم الدالة لن يكون متاحًا إلا داخل الدالة نفسها (يمكن أن يستعمل لتنفيذها تعاوديًا [recursively]). param اسم الوسيط المُرَّر إلى الدالة. statements التعابير البرمجية التي تُشكِّل جسم الدالة. الوصف تعابير تعريف الدوال غير المتزامنة تشبه ...

for في PHP

(PHP 4, PHP 5, PHP 7) تعدّ حلقات for النوع الأكثر تعقيدًا من الحلقات في PHP، وهي مشابهة لنظيرتها في لغة C، وتأخذ الصيغة التالية: for (expr1; expr2; expr3) statement ينفّذ التعبير expr1 مرة واحدة دون قيد أو شرط في بداية الحلقة، وينفّذ التعبير expr2 في بداية كل دورة، فإن كانت النتيجة هي TRUE فتستمر الحلقة في عملها وتنفّذ العبارات المضمّنة فيها، أما إن كانت النتيجة هي FALSE فتتوقف الحلقة عن العمل، أما التعبير expr3 فينفّذ في ...

بنية لغة PHP

وسوم PHP عندما تُفسِّر PHP ملفًا فهي تبحث عن وسوم البداية والنهاية، وهي ‎<?php و ‎?>‎، والتي تخبر PHP أين يجب أن تُفسِّر الشيفرات، وهذا يعني أنَّ بالإمكان تضمين لغة PHP في مختلف أنواع المستندات، وسيتجاهل المُفسِّر أي شيء خارج وسمَي البداية والنهاية. تسمح PHP بوسم البداية المختصر وهو ‎<?‎ (لكن استعماله غير منصوح به، لأنها لا يعمل إلا إذا فعّلناه باستخدام تعليمة الضبط short_open_tag). إذا كان الملف لا يحتوي إلا على شيفرات PHP، فمن المستحسن حذف وسم النهاية في ...

بنية لغة PHP

وسوم PHP عندما تُفسِّر PHP ملفًا فهي تبحث عن وسوم البداية والنهاية، وهي ‎<?php و ‎?>‎، والتي تخبر PHP أين يجب أن تُفسِّر الشيفرات، وهذا يعني أنَّ بالإمكان تضمين لغة PHP في مختلف أنواع المستندات، وسيتجاهل المُفسِّر أي شيء خارج وسمَي البداية والنهاية. تسمح PHP بوسم البداية المختصر وهو ‎<?‎ (لكن استعماله غير منصوح به، لأنها لا يعمل إلا إذا فعّلناه باستخدام تعليمة الضبط short_open_tag). إذا كان الملف لا يحتوي إلا على شيفرات PHP، فمن المستحسن حذف وسم النهاية في ...

الدوال في JavaScript

على وجه العموم، الدالة هي «برنامجٌ فرعي» (subprogram) الذي يمكن استدعاؤه من شيفرة خارجية (أو داخلية، في حال أردنا استدعاء الدالة تعاوديًا [recursively])؛ وتحتوي الدالة على سلسلةٍ من التعابير البرمجية التي تسمى «جسم الدالة»، ويمكن تمرير قيم إلى الدالة، وتستطيع الدالة أن تعيد قيمةً ما. تُعدّ الدوال في JavaScript على أنَّها كائنات من الصنف الأول (first-class objects)، لأنها تملك خاصيات ودوال مثل بقية الكائنات، لكن ما يميّزها عن بقية الكائنات هو إمكانية استدعائها، إذ إنَّها كائنات من النوع Function. الوصف ...

تعبير تعريف الدوال

الكلمة المحجوزة function تُستخدَم لتعريف دالة داخل تعبير (expression). يمكنك أيضًا تعريف الدوال عبر التصريح عنها function declaration أو عبر الدالة البانية Function. البنية العامة var myFunction = function [name]([param1[, param2[, ..., paramN]]]) { statements }; name اسم الدالة، ويمكن حذفه وحينئذٍ ستسمى الدالة بالدالة المجهولة؛ واسم الدالة لن يكون متاحًا إلا داخل الدالة نفسها (يمكن أن يستعمل لتنفيذها تعاوديًا [recursively]). param اسم الوسيط المُرَّر إلى الدالة، العدد الأقصى للوسائط التي يمكن تمريرها إلى الدالة يختلف حسب المحرِّك الذي ...

التعليقات في SQL

تضاف التعليقات إلى الشيفرة بهدف تسهيل قراءتها أو كتابة ملاحظات جانبية مساعدة، وتوجد طريقتان لإضافة التعليقات: الأولى: بإضافة شرطَتين متتاليتَن، وذلك للتعليقات السطرية (سطر واحد فقط). الثانية: بإضافة الرمزين ‎*/ عند بداية التعليقات وإنهائها بالرمزين ‎ */‎وذلك للتعليقات الممتدة عبر سطر أو أكثر. أمثلة SELECT count(*); -- This comment continues to the end of line SELECT count(*); /* This is an inline comment */; SELECT count(*), /* This is a multiline comment */ country; التوافقية SQLServer SQLite Oracle PostgreSQL ...

الفاصلة ; المنقوطة في أردوينو

تُستعمَل الفاصلة المنقوطة ; لإنهاء كل تعبير برمجي في لغة أردوينو C. البنية العامة /* a statement */ ; أمثلة مثالٌ على تعريف متغير: int a = 13; ملاحظات وتحذيرات سيؤدي نسيان إنهاء سطرٍ بفاصلة منقوطة إلى رمي خطأ أثناء تصريف الشيفرة. قد تكون رسالة الخطأ واضحة وصريحة وتشير إلى موقع نسيان الفاصلة في الشيفرة أو قد لا تكون. إن واجهك خطأٌ غامضٌ أو بدى وكأنَّه غير منطقي أثناء تصريف الشيفرة، فتحقَّق أولًا من نسيان الفاصلة المنقوطة في الجوار السابق ...

switch في PHP

(PHP 4, PHP 5, PHP 7) تشبه عبارة switch سلسلةً من عبارات if مطبّقة على نفس التعبير. قد تحتاج في بعض الأحيان إلى مقارنة نفس المتغير (أو التعبير) مع قيم مختلفة (حالات cases)، وتنفيذ شيفرة مختلفة بالاعتماد على ذلك، وهذه هي وظيفة عبارة switch. ملاحظة: بخلاف بعض اللغات البرمجية، يمكن استخدام عبارة continue في switch وهي تعمل عمل العبارة break. إن كنت تستخدم switch داخل حلقة وأردت الانتقال إلى الدورة التالية في الحلقة التكرارية الخارجية، استخدم continue 2. ملاحظة: تؤدي ...

switch في PHP

(PHP 4, PHP 5, PHP 7) تشبه عبارة switch سلسلةً من عبارات if مطبّقة على نفس التعبير. قد تحتاج في بعض الأحيان إلى مقارنة نفس المتغير (أو التعبير) مع قيم مختلفة (حالات cases)، وتنفيذ شيفرة مختلفة بالاعتماد على ذلك، وهذه هي وظيفة عبارة switch. ملاحظة: بخلاف بعض اللغات البرمجية، يمكن استخدام عبارة continue في switch وهي تعمل عمل العبارة break. إن كنت تستخدم switch داخل حلقة وأردت الانتقال إلى الدورة التالية في الحلقة التكرارية الخارجية، استخدم continue 2. ملاحظة: تؤدي ...

for في بايثون

تختلف عبارة for قليلًا في بايثون عن نظيرتها في لغتي C أو Pascal، فبدلًا من تكرار الحلقة استنادًا إلى عملية حسابية (مثل لغة Pascal) أو منح المستخدم القدرة على تعريف عدد مرات التكرار والشرط الذي يؤدي إلى إيقاف عمل الحلقة (كما في لغة C)، فإنّ عبارة for في بايثون تمرّ على عناصر أي تسلسل (قائمة أو سلسلة نصية) معتمدة في ذلك على ترتيب تلك العناصر في ذلك التسلسل. بنية عبارة for >>> # معرفة أطوال السلاسل النصية: ... words = ['cat', ...

for في بايثون

تختلف عبارة for قليلًا في بايثون عن نظيرتها في لغتي C أو Pascal، فبدلًا من تكرار الحلقة استنادًا إلى عملية حسابية (مثل لغة Pascal) أو منح المستخدم القدرة على تعريف عدد مرات التكرار والشرط الذي يؤدي إلى إيقاف عمل الحلقة (كما في لغة C)، فإنّ عبارة for في بايثون تمرّ على عناصر أي تسلسل (قائمة أو سلسلة نصية) معتمدة في ذلك على ترتيب تلك العناصر في ذلك التسلسل. بنية عبارة for >>> # معرفة أطوال السلاسل النصية: ... words = ['cat', ...

الدالة chown()‎ في PHP

(PHP 4, PHP 5, PHP 7) تغيِّر الدالة chown()‎ مالك الملف. الوصف bool chown ( string $filename , mixed $user ) تحاول هذه الدالة تغيير مالك الملف filename إلى المالك الجديد user. المستخدم ذو امتيازات مدير النظام الذي يملك كافَّة صلاحيات الوصول (superuser) قادرٌ وحده على تغيير مالك الملف. المعاملات filename مسار الملف الذي ستُجرى عليه العمليَّة. user اسم المالك الجديد أو رقم مُعرِّفه. القيم المعادة تُعاد القيمة TRUE عند نجاح العملية، والقيمة FALSE خلاف ذلك. أمثلة المثال 1: استعمال الدالة ...

مقدمة إلى التعامل مع قواعد البيانات في Laravel

مقدمة يُبسّط Laravel التعامل مع قواعد البيانات بشكل كبير عبر مجموعة متنوعة من الأسندة الخلفية (backends) قواعد البيانات إمّا باستخدام  لغة الاستعلام البنيوية SQL خام أو باستخدام منشئ الاستعلامات الفصيح (fluent query builder)، أو باستخدام رابط الكائنات بالعلاقات Eloquent. يدعم Laravel حاليًا أربع قواعد بيانات: MySQL PostgreSQL SQLite SQL Server الضبط تقع إعدادات قاعدة بيانات تطبيقك في config/database.php. تستطيع في هذا الملف تعريف جميع اتصالات قاعدة بياناتك لإضافةً لتحديد الاتصال الافتراضي. تتوافر أمثلة عن معظم أنظمة قواعد البيانات المدعومة في ...

التصريح عن الدوال غير المتزامنة في JavaScript

التصريح عن دالة غير متزامنة (asynchronous function declaration) يُعيد كائنًا من النوع AsyncFunction، يمكن أيضًا إنشاء الدوال غير المتزامنة عبر تعابير تعريف الدوال غير المتزامنة (async function expression). البنية العامة async function name([param[, param[, ... param]]]) { statements } name اسم الدالة param اسم الوسيط المُرَّر إلى الدالة. statements التعابير البرمجية التي تُشكِّل جسم الدالة. القيمة المعادة كائن AsyncFunction الذي يُمثِّل الدالة غير المتزامنة ويُنفِّذ الشيفرة الموجودة ضمنها. الوصف عندما تُستدعى دالة غير متزامنة، فستعيد كائن Promise، وعندما تُعيد ...

goto في PHP

(PHP 5 >= 5.3.0, PHP 7) يمكن استخدام عامل goto للانتقال إلى قسم آخر في البرنامج، وتعيّن نقطة الانتقال هذه بواسطة وسم متبوعٍ بنقطتين رأسيتين (:)، وتكون طريقة الانتقال باستخدام العامل goto متبوعًا بالوسم المراد الانتقال إليه. هناك بعض القيود المفروضة على استخدام goto، إذ يجب أن يكون الوسم الهدف في نفس الملف ونفس السياق (context)، بمعنى أنّه لا يمكن الانتقال من داخل الدالة أو التابع إلى الخارج كما لا يمكن الانتقال إلى الداخل. لا يمكن أيضًا الانتقال إلى أي ...

goto في PHP

(PHP 5 >= 5.3.0, PHP 7) يمكن استخدام عامل goto للانتقال إلى قسم آخر في البرنامج، وتعيّن نقطة الانتقال هذه بواسطة وسم متبوعٍ بنقطتين رأسيتين (:)، وتكون طريقة الانتقال باستخدام العامل goto متبوعًا بالوسم المراد الانتقال إليه. هناك بعض القيود المفروضة على استخدام goto، إذ يجب أن يكون الوسم الهدف في نفس الملف ونفس السياق (context)، بمعنى أنّه لا يمكن الانتقال من داخل الدالة أو التابع إلى الخارج كما لا يمكن الانتقال إلى الداخل. لا يمكن أيضًا الانتقال إلى أي ...

if في PHP

(PHP 4, PHP 5, PHP 7) بنية if هي واحدة من أهم الميزات المتوفّرة في العديد من اللغات البرمجية، ومن ضمنها PHP. إذ تتيح تنفيذ أجزاء من الشيفرة اعتمادًا على شروط معينة. تعتمد PHP بنية if المعتمدة في لغة C: if (expr) statement تُحسب التعابير -كما ورد في الفصل المتعلّق بالتعابير في هذا الدليل- إلى قيمة منطقية (Boolean)، فإن كانت نتيجة الحساب هي TRUE تنفذ PHP العبارة، وإن كانت نتيجة الحساب هي FALSE تتجاهل اللغة ذلك التعبير. يمكن الحصول ...

if في PHP

(PHP 4, PHP 5, PHP 7) بنية if هي واحدة من أهم الميزات المتوفّرة في العديد من اللغات البرمجية، ومن ضمنها PHP. إذ تتيح تنفيذ أجزاء من الشيفرة اعتمادًا على شروط معينة. تعتمد PHP بنية if المعتمدة في لغة C: if (expr) statement تُحسب التعابير -كما ورد في الفصل المتعلّق بالتعابير في هذا الدليل- إلى قيمة منطقية (Boolean)، فإن كانت نتيجة الحساب هي TRUE تنفذ PHP العبارة، وإن كانت نتيجة الحساب هي FALSE تتجاهل اللغة ذلك التعبير. يمكن الحصول ...

الدالة compile()‎ في بايثون

تُجمّع الدّالة compile()‎ شيفرة بايثون مصدريّةً إلى شيفرة أو كائن AST. يُمكن تنفيذ هذه الكائنات عبر استخدام الدّالة exec()‎ أو الدّالة eval()‎. البنية العامة compile(source, filename, mode, flags=0, dont_inherit=False, optimize=-1) المعاملات source الشيفرة المصدريّة المرغوب تجميعها، يُمكن أن تكون قيمة المُعامل سلسلةً نصيّة، أو سلسلة بايتات نصيّة (byte string) أو كانًا من النّوع AST. انظر توثيق الوحدة ast للمزيد من المعلومات حول كائنات AST. filename اسم الملفّ الذي قُرِئَت منه الشيفرة. مرّر قيمةً مفهومةً إن لم تكن الشّيفرة قد قرئَت ...

الدوال المولدة في JavaScript

التصريح عن الدالة المولدة (generator function declaration) يُعرِّف دالة مولدِّةً التي تُعيد الكائن Generator. لاحظ أنَّ التصريح عن الدوال المولدة يكون عبر الكلمة المحجوزة function ويليها رمز النجمة *. يمكن أيضًا تعريف الدوال المولِّدة عبر الدالة البانية GeneratorFunction وعبر تعابير تعريف الدوال المولدة (function* expression). البنية العامة function* name([param[, param[, ... param]]]) { statements } name اسم الدالة param اسم الوسيط المُرَّر إلى الدالة، العدد الأقصى للوسائط التي يمكن تمريرها إلى الدالة يختلف حسب المحرِّك الذي يُفسِّر اللغة. statements ...

if في بايثون

تقدّم بايثون عبارة if للتحكم المشروط بتدفق الشيفرة، وتأخذ الصيغة التالية: if expression: statement فعلى سبيل المثال: >>> x = int(input("Please enter an integer: ")) Please enter an integer: -16 >>> if x < 0: ...     x = 0 ...     print('Negative changed to zero') Negative changed to zero عبارة elif يمكن استخدام عبارة elif (وهي اختصار لعبارة 'else if' ) عند الحاجة إلى التحقق من شروط إضافية، وكما هو موضح في المثال التالي: >>> x = int(input("Please enter an integer: ")) Please ...

if في بايثون

تقدّم بايثون عبارة if للتحكم المشروط بتدفق الشيفرة، وتأخذ الصيغة التالية: if expression: statement فعلى سبيل المثال: >>> x = int(input("Please enter an integer: ")) Please enter an integer: -16 >>> if x < 0: ...     x = 0 ...     print('Negative changed to zero') Negative changed to zero عبارة elif يمكن استخدام عبارة elif (وهي اختصار لعبارة 'else if' ) عند الحاجة إلى التحقق من شروط إضافية، وكما هو موضح في المثال التالي: >>> x = int(input("Please enter an integer: ")) Please ...