نتائج البحث

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

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

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

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

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

تنقيح برامج Bash

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

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

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

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

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

حلقة for في Bash

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

المزيد من خيارات 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 سواء ...

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

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

حلقة while في Bash

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

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

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

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

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

حلقة until في Bash

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

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

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

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

المتغيرات في 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

صفحة 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/Topics

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

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

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

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

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

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

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

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

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

الثابت التخيلي I الخاص بالصنف Complex في روبي

يمثل الثابت i العدد التخيلي للأعداد العقدية. البنية العامة i أمثلة أمثلة عن استخدام الثابت i: Complex('0.3-0.5i') #=> (0.3-0.5i) Complex('2/3+3/4i') #=> ((2/3)+(3/4)*i) انظر أيضًا التابع polar: يعيد عددًا عقديًا وفق الشكل القطبي (polar form). التابع ‎rect: يعيد عددًا عقديًا وفق الشكل الجبري أو المستطيلي (rectangular form). مصادر قسم الثابت i‎ في الصنف Complex في توثيق روبي الرسمي.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

مقدمة إلى الدوال في 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)، وهلم جرا. ثم إذا دعت الحاجة إلى كتابة تلك المهام مرة أخرى فإنك لا تحتاج سوى إعادة تدوير ...

مهيئ الكائنات في JavaScript

يمكن تهيئة الكائنات باستخدام new Object()‎ أو الدالة Object.create()‎ أو باستخدام الشكل المختصرة (initializer notation). إنَّ مُهيّئ الكائنات هو قائمة فيها «صفر» زوج أو أكثر من أسماء الخاصيات مع القيم المرتبطة بها، مفصولةٌ بفواصل، ويحيط بها قوسين معقوفين {}. البنية العامة var o = {}; var o = {a: 'foo', b: 42, c: {}}; var a = 'foo', b = 42, c = {}; var o = {a: a, b: b, c: c}; var o = { property: function ([parameters]) {}, get property() ...

Laravel Socialite

مقدمة بالإضافة إلى الاستيثاق النمطي القائم على النموذج، يوفر Laravel أيضًا طريقة بسيطة ومريحة للاستيثاق مع موفري OAuth باستخدام Laravel Socialite، وهو يدعم حاليا الاستيثاق مع Facebook و Twitter و LinkedIn وGoogle و GitHub و Bitbucket. ملاحظة: المحولات للمنصات الأخرى موجودة في موقع مجتمع Socialite Providers. التثبيت استخدم Composer لإضافة الحزمة إلى اعتماديّات مشروعك لبدء استخدام Socialite: composer require laravel/socialite الضبط ستحتاج قبل استخدام Socialite إلى إضافة بيانات اعتماد لخدمات OAuth التي يستخدمها تطبيقك في ملف الضبط config/services.php ويجب استخدام ...

Array.prototype.forEach()‎

الدالة Array.prototype.forEach()‎ تستدعي دالةً لكل عنصر موجود في المصفوفة. const arr = ['a', 'b', 'c']; arr.forEach(function(element) { console.log(element); }); // a // b // c البنية العامة arr.forEach(callback[, thisArg]) callback الدالة التي ستُنفَّذ كل عنصر من عناصر المصفوفة، وتقبل ثلاثة وسائط. currentValue العنصر الحالي الذي يُعالِج في المصفوفة، وهذه القيمة مطلوبة. index فهرس العنصر الحالي في المصفوفة، وهذه القيمة اختيارية. array المصفوفة التي استدعيت الدالة forEach عليها، وهذه القيمة اختيارية. thisArg القيمة التي ستُستخدَم في this عند استدعاء الدالة callback، وهي قيمة ...

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 يُستخدَمان للدوران ...

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

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

التابع Enumerator::Lazy.flat_map في روبي

يعيد التابع flat_map كائن تعداد جديد من النوع Lazy مع النتائج المتسلسلة الناتجة عن تنفيذ الكتلة المعطاة مرةً واحدةً لكل عنصر من عناصر الكائن Lazy الذي استدعي معه. ["foo", "bar"].lazy.flat_map {|i| i.each_char.lazy}.force #=> ["f", "o", "o", "b", "a", "r"] تُحلَّل (decompose) القيمة x المعادة من الكتلة إن تحقق أحد الشرطين التاليين: x تستجيب للتابعين each و force كلاهما، وهذا يعني أن x هي مُعدِّد كسول (lazy enumerator). x هي مصفوفة أو تستجيب للتابع to_ary. خلا ذلك، ستُحتَوى x كما هي في القيمة المعادة. [{a:1}, ...

التابع Enumerator::Lazy.collect_concat في روبي

يعيد التابع collect_concat كائن تعداد جديد من النوع Lazy مع النتائج المتسلسلة الناتجة عن تنفيذ الكتلة المعطاة مرةً واحدةً لكل عنصر من عناصر الكائن Lazy الذي استدعي معه. ["foo", "bar"].lazy.collect_concat {|i| i.each_char.lazy}.force #=> ["f", "o", "o", "b", "a", "r"] تُحلَّل (decompose) القيمة x المعادة من الكتلة إن تحقق أحد الشرطين التاليين: x تستجيب للتابعين each و force كلاهما، وهذا يعني أن x هي مُعدِّد كسول (lazy enumerator). x هي مصفوفة أو تستجيب للتابع to_ary. خلا ذلك، ستُحتَوى x كما هي في القيمة المعادة. [{a:1}, ...

الاستجابات HTTP في Laravel

إنشاء الردود السلاسل النصيّة والمصفوفات يجب على جميع الطرق ووحدات التحكّم رد استجابة لإرسالها مرّة أخرى إلى متصفّح المستخدم. يوفر Laravel عدة طرق مختلفة لإرجاع الردود. أكثر رد أساسي هو رد سلسلة نصيّة من مسار أو جهاز تحكّم. سيُحوّل إطار العمل السلسلة النصيّة إلى استجابة HTTP كاملة تلقائيًا: Route::get('/', function () { return 'Hello World'; }); يمكنك بالإضافة لرد السلاسل من مساراتك ووحدات تحكّمك رد مصفوفات. سيُحوّل إطار العمل تلقائيًا المصفوفة لاستجابة JSON: Route::get('/', function () { ...

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

Object.defineProperty()‎

الدالة Object.defineProperty()‎ تُعرِّف خاصيةً جديدةً على كائنٍ مباشرةً، أو تُعدِّل خاصية موجودةً مسبقًا في كائنٍ ثم تُعيد هذا الكائن. البنية العامة Object.defineProperty(obj, prop, descriptor) obj الكائن الذي نريد تعريف الخاصية فيه. prop اسم الخاصية التي نريد تعريفها أو تعديلها. descriptor واصف الخاصية (property descriptor) التي ستُضاف أو تُعدَّل. القيمة المعادة الكائن الذي مُرِّرَ إلى الدالة. الوصف هذه الدالة تسمح بإضافة أو تعديل خاصية من خاصيات كائنٍ ما بدقة، إذ إنَّ إضافة الخاصيات عبر معامل الإسناد سيُنشِئ خاصياتٍ تظهر عند إحصاء ...

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

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

التابع Array.bsearch في روبي

يبحث التابع bsearch باستخدام البحث الثنائي (binary search) عن قيمة من مصفوفة تحقق شرطًا منطقيًّا محددًا ويستغرق ‎O(log n)‎، إذ n حجم المصفوفة. يوجد وضعان لاستعمال هذا التابع هما: وضع البحث عن الحد الأدنى (find-minimum mode)، ووضع البحث العام (find- any mode). في كلتا الحالتين، يجب أن تكون عناصر المصفوفة مرتبةً بالتوافق مع الكتلة البرمجية المحدَّدة. في وضع البحث عن الحد الأدنى (يعدُّ هذا خيارًا جيدًا لحالات الاستخدام الاعتياديَّة)، يجب أن تعيد الكتلة البرمجية القيمة true أو القيمة false دومًا ...

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

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

المولدات Generators في بايثون

المولّدات هي أداة بسيطة وقوية لإنشاء المكرِّرات. تأخذ المولِّدات صيغة الدوال العادية ولكنّها تستخدم عبارة yield عند إعادة البيانات. في كلّ مرة تستدعى فيها الدالة next()‎ على المولّدات تعود الأخيرة إلى المكان الذي تركته (تتذكر المولّدات جميع القيم والعبارات التي نفّذت أخيرًا). يوضح المثال التالي كيفية إنشاء المولّدات وآلية عملها: def reverse(data):     for index in range(len(data)-1, -1, -1):         yield data[index] >>> >>> for char in reverse('golf'): ...     print(char) ... f l o g يمكن إنجاز كل ما تقوم به المولّدات باستخدام مكرِّرات صنفية (class-based ...

Object.prototype.constructor

الخاصية Object.prototype.constructor تُعيد مرجعيةً إلى الدالة البانية Object التي تُنشِئ نسخةً (instance) من الكائن؛ لاحظ أنَّ قيمة هذه الخاصية تُشير إلى الدالة نفسها وليست سلسلةً نصيةً تحتوي على اسم الدالة؛ وتكون هذه القيمة للقراءة فقط في القيم الأوليّة مثل 1 و true و "test". الوصف جميع الكائنات تملك الخاصية constructor، والكائنات المُنشأة دون استخدام الدالة البانية مباشرةً (أي الشكل المختصرة لإنشاء الكائنات والمصفوفات) ستملك الخاصية constructor التي تُشير إلى الدالة البانية الأساسية لنوع الكائنات التي تتبع له. var o = ...

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

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

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

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

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

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

الدليل التطبيقي

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

الكلمة المحجوزة this في JavaScript

الكلمة المحجوزة this لها سلوكٌ في JavaScript يختلف عن بقية لغات البرمجة، وهنالك اختلافاتٌ في سلوكها بين النمط strict و non-strict. في أغلبية الحالات، تُحدَّد قيمة الكلمة المحجوزة this وفق طريقة استدعاء الدالة، إذ لا يمكن ضبط قيمتها باستخدام عملية الإسناد العادية أثناء التنفيذ؛ وقد تختلف قيمة this في كل مرة تُستدعى فيها الدالة. أضافت ES5 الدالة bind التي تضبط قيمة this داخل الدالة بغض النظر عن طريقة استدعائها، وأضافت ES2015 الدوال السهمية (arrow functions) التي تُوفِّر ربطًا خاصًا بها ...

Object.entries()‎

الدالة Object.entries()‎ تُعيد مصفوفةً تحتوي على الخاصيات القابلة للإحصاء التابعة لأحد الكائن على شكل الأزواج [key, value] بنفس الترتيب الذي تُوفِّر حلقة التكرار for...in. الفرق بين هذه الدالة وحلقة التكرار for...in هو أنَّ حلقة for...in ستمرّ على الخاصيات القابلة للإحصاء والموجودة في سلسلة prototype أيضًا. البنية العامة Object.entries(obj) obj الكائن الذي ستُعاد الخاصيات القابلة للإحصاء التابعة له على شكل الأزواج [key, value]. القيمة المعادة مصفوفة تحتوي على قيم الخاصيات القابلة للإحصاء التابعة للكائن obj على شكل الأزواج [key, value]. أمثلة مثال عن كائن ...

التابع IO.inspect‎ في روبي

يُعيد التابع inspect سلسلة نصية تصف المجرى الذي استُدعي معه. البنية العامة inspect→ string‎ القيمة المعادة تعاد سلسلة نصية تصف المجرى المعطى. انظر أيضًا التابع fcntl: يوفر آلية لإصدار أوامر منخفضة المستوى للتحكم في أو الاستعلام عن مجاري د/خالموجهة بالملفات (file-oriented I/O). التابع gets: يجلب السطر التالي من المجرى الذي استدعي معه.  مصادر قسم التابع inspect‎ في الصنف IO‎ في توثيق روبي الرسمي.

الدالة CharSequence.flatMap()‎ في Kotlin

تعيد الدالة flatMap()‎ قائمةً تضم ناتج تطبيق الدالة المُمرّرة إليها على كل محرف من محارف السلسلة التي استُدعيت معها. البنية العامة inline fun <R> CharSequence.flatMap( transform: (Char) -> Iterable<R> ): List<R> وجود الكلمة المفتاحية inline يدل على أنَّ هذه الدالة مباشرة (للمزيد من التفاصيل، راجع صفحة الدوال المباشرة (inline functions)). المعاملات transform دالةٌ تطبق على كل محرف من محارف السلسلة المعطاة، وتعيد قيمة معينة تحل مكانه. القيم المعادة تُعاد قائمةٌ تضم ناتج تطبيق الدالة transform‎ على كل محرف من محارف السلسلة المعطاة. أمثلة مثالٌ على استعمال الدالة ()flatMap: fun main(args: ...

التابع Thread.run‎ في روبي

يوقظ التابع run المهمة الفرعية، ويجعلها متاحة للجدولة. انظر أيضًا صفحة تابع النسخة wakeup. البنية العامة run→ thr‎ القيمة المعادة تعاد المهمة الفرعية المعطاة. أمثلة مثال على استخدام التابع run‎: a = Thread.new { puts "a"; Thread.stop; puts "c" } sleep 0.1 while a.status!='sleep' puts "Got here" a.run a.join‎ هذا سوف ينتج: a Got here c انظر أيضًا التابع wakeup:يجعل المهمة الفرعية متاحة للجدولة، ولكن قد تظل معطلة في مجرى الدخل/الخرج (I/O). مصادر قسم التابع run‎ في الصنف Thread‎ في توثيق روبي الرسمي.11

التابع Thread.wakeup‎ في روبي

يوقظ التابع wakeup مهمة فرعية ويجعلها متاحة للجدولة، ولكن قد تظل معطلة في مجرى الإدخال/الإخراج (I/O). ملحوظة: هذا التابع لا يستدعي المُجدوِل (scheduler)؛ راجع صفحة التابع run لمزيد من المعلومات. البنية العامة wakeup→ thr‎ القيمة المعادة تعاد المهمة الفرعية بعد إيقاظها. أمثلة مثال على استخدام التابع wakeup‎: c = Thread.new { Thread.stop; puts "hey!" } sleep 0.1 while c.status!='sleep' c.wakeup c.join #=> "hey!"‎ انظر أيضًا التابع run: يوقظ المهمة الفرعية، ويجعلها متاحة للجدولة. مصادر قسم التابع Threadwakeup‎ في الصنف Thread‎ في توثيق روبي الرسمي.

الدالة CharSequence.forEachIndexed()‎ في Kotlin

تُنفّد الدالةُ forEachIndexed()‎ الدالةَ المُمرّرةَ إليها على كل محرف من محارف السلسلة التي استُدعيت معها وعلى فهرس ذلك المحرف. البنية العامة inline fun CharSequence.forEachIndexed( action: (index: Int, Char) -> Unit) وجود الكلمة المفتاحية inline يدل على أنَّ هذه الدالة مباشرة (للمزيد من التفاصيل، راجع صفحة الدوال المباشرة (inline functions)). المعاملات action الدالة المراد تنفيذها مع كل محرف من محارف السلسلة المعطاة. يمرر إليها فهرس المحرف index وقيمته Char. أمثلة مثالٌ على استعمال الدالة ()forEachIndexed: fun main(args: Array<String>) { val str = "Hsoubwiki" ...

Array.prototype.every()‎

الدالة Array.prototype.every()‎ تختبر إذا كانت جميع عناصر المصفوفة تحقق الاختبار المُحدَّد من قِبل الدالة المعنية. function isBelowThreshold(currentValue) { return currentValue < 40; } var array1 = [1, 30, 39, 29, 10, 13]; console.log(array1.every(isBelowThreshold)); // true البنية العامة arr.every(callback[, thisArg]) callback الدالة التي ستختبر كل عنصر من عناصر المصفوفة، وتقبل ثلاثة وسائط. currentValue العنصر الحالي الذي يُعالِج في المصفوفة، وهذه القيمة مطلوبة. index فهرس العنصر الحالي في المصفوفة، وهذه القيمة اختيارية. array المصفوفة التي استدعيت الدالة every عليها، وهذه القيمة اختيارية. thisArg القيمة ...

الدالة toCharArray()‎ في Kotlin

تضع الدالة toCharArray()‎ جميع محارف السلسلة النصية التي استٌدعيت معها في مصفوفة من النوع CharArray، إذ يوضع كل محرف في عنصر. البنية العامة inline fun String.toCharArray(): CharArray بيئة التشغيل المطلوبة: JVM. تعيد الدالة toCharArray()‎ مصفوفة من النوع CharArray تحتوي حروف السلسلة النصية التي استٌدعيت عبرها. inline fun String.toCharArray( destination: CharArray, destinationOffset: Int = 0, startIndex: Int = 0, endIndex: Int = length ): CharArray بيئة التشغيل المطلوبة: JVM. ...

الدالة CharSequence.flatMapTo()‎ في Kotlin

تشبه الدالة flatMapTo()‎ الدالة flatMap()‎ تمامًا باستثناء أنها تضيف الناتج المعاد إلى كائن موجود مسبقًا بدلًا من إعادته فقط. البنية العامة inline fun <R, C : MutableCollection<in R>> CharSequence.flatMapTo( destination: C, transform: (Char) -> Iterable<R> ): C وجود الكلمة المفتاحية inline يدل على أنَّ هذه الدالة مباشرة (للمزيد من التفاصيل، راجع صفحة الدوال المباشرة (inline functions)). المعاملات destination مجموعة قابلة للتغيير (MutableCollection‎) تمثل الوجهة التي سيضاف إليها الناتج. transform دالةٌ تطبق على كل محرف من محارف السلسلة المعطاة، وتعيد ...

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

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

Array.prototype.indexOf()‎

الدالة Array.prototype.indexOf()‎ تعيد أوّل فهرس للعنصر الموجود في الدالة والذي يساوي القيمة المُحدَّدة، أو القيمة -1 إن لم يُعثَر على مُطابَقة. var a = [2, 9, 9]; a.indexOf(2); // 0 a.indexOf(7); // -1 if (a.indexOf(7) === -1) { // العنصر غير موجود في المصفوفة } البنية العامة arr.indexOf(searchElement[, fromIndex]) searchElement العنصر الذي نريد البحث عنه. fromIndex الفهرس الذي نريد البدء منه في البحث عن searchElement، والقيم السالبة ستؤدي إلى بدء البحث من الفهرس array.length + fromIndex تصاعديًا. القيمة الافتراضية هي 0. ...

التصريح عن المتغيّرات في TypeScript

التصريح عن المتغيّرات (Variable Declarations) الكلمتان المفتاحيتان ‎let‎ و‎const‎ نوعان جديدان من طرق التصريح عن المتغيرات في لغة JavaScript. الكلمة المفتاحية let مُشابهة للكلمة المفتاحية var من عدّة نواحي، لكنّ let تسمح للمُطورين بتجنب بعض المشاكل التي تحدث عادةً في لغة JavaScript. أمّا const فهي طريقة لمنع إعادة تعيين القيم للمتغيرات. ولأنّ TypeScript مجموعة عليا من JavaScript، فاللغة تدعم ‎let‎ و‎const‎. وسنشرح طرق التصريح عن المتغيرات هذه ولمَ يُفضّل استعمالها عوضًا عن ‎var‎. إن كانت لديك خبرة قليلة في لغة ...

التابع IO.fcntl‎ في روبي

يوفر التابع fcntl آلية لإصدار أوامر منخفضة المستوى للتحكم في أو الاستعلام عن مجاري د/خ الموجهة بالملفات (file-oriented I/O). الوسائط والنتائج تعتمد على النظام المُستخدم. في المنصات الشبيهة بيونيكس، راجع صفحة الدالة fcntl(2)‎ لمزيد من التفاصيل. ملاحظ: هذا التابع ليس مُتاحا على جميع المنصات. البنية العامة fcntl(integer_cmd, arg) → integer‎ المعاملات integer_cmd الأمر المراد تنفيذه للتحكم في أو الاستعلام عن المجرى المعطى. arg إن كان المعامل arg عددًا، فستُمرر قيمته مباشرةً. وإن كان سلسلة نصية، فستُفسر على أنها تسلسل ثنائي من ...

Array.prototype.map()‎

الدالة Array.prototype.map()‎ تُنشِئ مصفوفةً جديدةً باستخدام القيم المُعادة من استدعاء دالة مُحدَّدة على جميع عناصر المصفوفة الأصلية. var array1 = [1, 4, 9, 16]; // دالة سهمية const map1 = array1.map(x => x * 2); console.log(map1); // [2, 8, 18, 32] البنية العامة var new_array = arr.map(callback[, thisArg]) callback الدالة التي ستختبر كل عنصر من عناصر المصفوفة، وتقبل ثلاثة وسائط. currentValue العنصر الحالي الذي يُعالِج في المصفوفة، وهذه القيمة مطلوبة. index فهرس العنصر الحالي في المصفوفة، وهذه القيمة اختيارية. array المصفوفة التي استدعيت ...

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

التابع Thread.status‎ في روبي

يُعيد التابع status حالة المهمة الفرعية. البنية العامة status→ string, false or nil‎ القيمة المعادة تعاد سلسلة نصية تمثِّل حالة المهمة الفرعية. القيم التي يحتمل أن تعاد هي: "sleep": تعاد إن كانت هذه المهمة الفرعية نائمة أو في وضع انتظار مجرى المدخلات/المخرجات (I/O). "run": تعاد عندما تكون هذه المهمة الفرعية قيد التنفيذ. "aborting": تعاد إن كانت المهمة الفرعية قيد الانتهاء. false: تعاد عندما تكون المهمة الفرعية قيد الانتهاء بشكل طبيعي. nil: تعاد إذا تم إنهاؤها عبر استثناء. أمثلة مثال على استخدام ...

الدالة CharSequence.map()‎ في Kotlin

تعيد الدالة map()‎ قائمةً تحوي ناتج تطبيق الدالة المُمرّرة إليها على كل محرف من محارف السلسلة التي استُدعيت معها. البنية العامة inline fun <R> CharSequence.map( transform: (Char) -> R ): List<R> وجود الكلمة المفتاحية inline يدل على أنَّ هذه الدالة مباشرة (للمزيد من التفاصيل، راجع توثيق الدوال المباشرة (inline functions)). المعاملات transform دالةٌ تطبق على كل محرف من محارف السلسلة المعطاة. يمرر إليها محرفٌ وتعيد القيمة المقابلة له. القيم المعادة تُعاد قائمةٌ تضم ناتج تطبيق الدالة transform على كل محرف من محارف السلسلة المعطاة. أمثلة مثالٌ على استعمال الدالة map()‎: ...

الدالة toCollection()‎ في Kotlin

تضيف الدالة toCollection()‎ كل محارف السلسلة التي استٌدعيت معها إلى المجموعة المتغيرة المُمرّرة إليها. البنية العامة fun <C : MutableCollection<in Char>> CharSequence.toCollection( destination: C ): C المعاملات مجموعة متغيرة يراد أن يضاف فيها محتوى سلسلة المحارف المعطاة. القيم المعادة يعاد المعامل destination بعد إضافة محتوى سلسلة المحارف المعطاة إليه. أمثلة مثالٌ على استعمال الدالة toCollection()‎: fun main(args: Array<String>) { val list: MutableList<Char> = mutableListOf() val str = "wikiHsoub" str.toCollection(list) ...

العنصر

يؤدي العنصر <br> إلى الانتقال إلى سطرٍ جديد، وهو مفيد عند كتابة قصيدة شعرية أو عنوان ما، حيث يكون تقسيم الأسطر مهمًا. مثال عن استخدام العنصر <br> لفصل أسطر العنوان عن بعضها بعضًا: <address> يمكنك التواصل مع موسوعة حسوب عبر <a href="https://io.hsoub.com/HsoubWiki">حسوب I/O</a>.<br> إذا أردت مراسلتنا مباشرةً <a href="mailto:wiki@hsoub.com">على البريد الإلكتروني</a>.<br> يمكنك أيضًا مراسلتنا على العنوان الرسمي:<br> Hsoub Ltd.<br> Level 17, Dashwood House<br> 69 Old Broad Street<br> London </address> بطاقة العنصر تصنيفات ...

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

(PHP 4, PHP 5, PHP 7) تبدِّل الدالة str_replace()‎ كل حالات وقوع سلسلة البحث إلى سلسلة الاستبدال. الوصف mixed str_replace ( mixed $search , mixed $replace , mixed $subject [, int &$count ] ) تعيد الدالة str_replace()‎ سلسلة أو مصفوفة مع تبديل كل حالات وقوع المعامل search في المعامل subject إلى قيمة المعامل replace المعطاة. إذا كنت لا تحتاج إلى قواعد استبدال معقدة (باستعمال التعابير النمطية) يجب عليك دائمًا استخدام هذه الدالة بدلاً من الدالة preg_replace()‎. المعاملات إذا كان المعامل search ...

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

تقدّم وحدة dbm.dumb واجهة برمجية مستمرة persistent شبيهة بالقواميس مكتوبة بواسطة لغة بايثون بالكامل. وعلى عكس الوحدات الأخرى مثل dbm.gnu لا حاجة لاستخدام أي مكتبات خارجية، ولكن تخزّن المفاتيح والقيم كبايتات كما هو الحال مع كائنات الربط المستمرّة الأخرى. ملاحظة: أعدت وحدة dbm.dumb لتوفّر الدعم التراجعي الأخير لوحدة dbm عند عدم توفّر أي وحدة ذات أداء أقوى. لم تكتب وحدة dbm.dumb لتقدّم أداءً سريعًا ولا تستخدم بكثرة مقارنة بالوحدات الأخرى الخاصة بقواعد البيانات. الاستثناءات الاستثناء dbm.dumb.error يطلق هذا الاستثناء عند ...

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

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

السلاسل النصية في أردوينو

يمكن تمثيل السلاسل النصية بطريقين. فإمَّا أن تُستخدَم السلاسل النصية كأحد أنواع البيانات في أردوينو والذي أصبح جزءًا من النواة ابتداءً من الإصدار 0019، أو يمكن إنشاء سلسلة نصية من مصفوفة من المحارف مع وجود المحرف null في نهايتها؛ ستُشرَح الطريقة الثانية في هذه الصفحة، إذ شُرحَت الطريقة الأولى بالتفصيل في توثيق الكائن string الذي يوفر الكثير من الوظائف والأدوات للتعامل مع السلاسل النصية ولكن على حساب الذاكرة. البنية العامة جميع الأمثلة التالية هي تصريحات صالحة للسلاسل النصية: char Str1[15]; char ...

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

(PHP 4, PHP 5, PHP 7) تعيد الدالة ‎count_chars()‎ معلومات عن الأحرف الموجودة بالسلسلة النصية. الوصف mixed count_chars ( string $string [, int $mode = 0 ] ) تعيد الدالة عدد التكرارات لكل قيمة بايت (byte-value) من القيمة 0 إلى 255 في سلسلة نصية بطرائق مختلفة. المعاملات string السلسلة النصية التي نريد فحصها. mode يحدد طريقة عمل الدالة count_chars()‎. القيم المعادة تختلف القيم المعادة للدالة count_chars()‎ على حسب قيمة المعامل mode كما يلي: 0: تعيد الدالةُ مصفوفةَ بياناتٍ. إذ يكون مفتاح ...

Array.prototype.reduce()‎

الدالة Array.prototype.reduce()‎ تؤدي إلى اختزال جميع قيم المصفوفة (بدءًا من اليسار إلى اليمين) إلى قيمة واحدة. const array1 = [1, 2, 3, 4]; const reducer = (accumulator, currentValue) => accumulator + currentValue; // 1 + 2 + 3 + 4 console.log(array1.reduce(reducer)); // 10 // 5 + 1 + 2 + 3 + 4 console.log(array1.reduce(reducer, 5)); // 15 البنية العامة arr.reduce(callback[, initialValue]) callback الدالة التي ستختبر كل عنصر من عناصر المصفوفة، وتقبل أربعة وسائط. accumulator القيمة التراكمية، انظر النقاش أدناه للتفاصيل. currentValue العنصر الحالي الذي يُعالِج ...

الدالة analogWriteResolution()‎ في أردوينو

الدالة analogWriteResolution()‎ هي دالةٌ ملحقةٌ بالواجهة البرمجية التشابهية (Analog API) مخصَّصةٌ للوحات أردوينو Due، إذ تُستعمَل لضبط دقة الدالة analogWrite()‎. يمكن استدعاء هذه الدالة لضبط الدقة إلى القيمة الافتراضية التي هي 8 بت (تمثِّل القيم بين 0 و 255) من أجل التوافقية الرجوعية مع اللوحات التي تعتمد على متحكمات AVR. تملك لوحات أردوينو Due الإمكانيات العتادية التالية: 12 رجل مولِّدة لإشارات PWM بدقة 8 بت افتراضية -مثل اللوحات التي تعتمد على متحكمات AVR-. يمكن زيادة الدقة لتصل إلى 12 بت. ...

الدالة analogReference()‎ في أردوينو

تهيِّئ الدالة analogReference()‎ قيمة الجهد المرجعي (reference voltage) المستعمل من أجل الدخل التشابهي (أي القيمة المستعملة بوصفها أعلى قيمة ضمن مجال القيم المدخلة). البنية العامة analogReference(type) المعاملات type نوع الجهد المرجعي المراد استعماله. الخيارات المتاحة التي يمكن استعمالها مع هذا المعامل هي: في لوحات أردوينو التي تعتمد على متحكمات AVR (مثل لوحات Uno، و Mega، وغيرها)، الخيارات المتوافرة هي: DEFAULT: الجهد المرجعي الافتراضي للدخل التشابهي وهو 5V (في اللوحات ذات الجهد 5V) أو 3.3V (في اللوحات ذات الجهد 3.3V). INTERNAL: ...

الدالة analogWrite()‎ في أردوينو

تكتب الدالة analogWrite()‎ قيمةً تشابهيةً (إشارة عبر معدل عرض النبضة [PWM]) على رجل محدَّدة. يمكن استعمالها لإضاء ضوء ليد بمستويات سطوع مختلفة أو قيادة محرك بسرعات مختلفة. بعد استدعاء الدالة analogWrite()‎ ستولد الرجل موجة مربعة ثابتة ذات دورة عمل (duty cycle) محدَّدة حتى الاستدعاء التالي للدالة analogWrite()‎ (أو استدعاء الدالة digitalRead()‎ أو digitalWrite()‎) على نفس الرجل. تردد إشارة معدل عرض النبضة (PWM) هي 490 هرتز تقريبًا. في لوحات أردوينو Uno وما يشابهها، تردد الرجل 5 والرجل 6 يقارب 980 هرتز. ...

الدالة noTone()‎ في أردوينو

توقف الدالة noTone()‎ توليد موجةٍ مربَّعةٍ على رجل معيَّنة أُنشئَت باستعمال الدالة tone()‎. ليس لهذه الدالة أي تأثير إن استدعيت ولم يكن هنالك أي موجة يجري توليدها على الرجل آنذاك. البنية العامة noTone(pin) المعاملات pin عددٌ صحيحٌ يشير إلى الرجل المراد إيقاف توليد الموجة (النغمة) عليها. القيم المعادة لا يعاد أي شيء. أمثلة مثال على استعمال الدالة noTone()‎ لإيقاف توليد موجبة مربعة على الرجل 3: unsigned int freq = 1000; void setup() { tone(3, freq); // ...

دوال التحكم بأرجل الدخل والخرج التشابهي في أردوينو

تستعمَل الدوال الموجودة في هذا القسم للتعامل مع أرجل الدخل والخرج التشابهي والتحكم بها وبدقة القيم المقروءة منها أو المكتوبة عليها. ()‎analogread تقرأ الدالة analogRead()‎ قيمة رجل تشابهية محدَّدة وتعيدها. ()‎analogreference تهيِّئ الدالة analogReference()‎ قيمة الجهد المرجعي (reference voltage) المستعمل من أجل الدخل التشابهي (أي القيمة المستعملة بوصفها أعلى قيمة ضمن مجال القيم المدخلة). ()‎analogwrite تكتب الدالة analogWrite()‎ قيمةً تشابهيةً (إشارة عبر معدل عرض النبضة [PWM]) على رجل محدَّدة. ()‎analogreadresolution الدالة analogReadResolution()‎ هي دالةٌ ملحقةٌ بالواجهة البرمجية التشابهية (Analog API) ...

دوال متقدمة للتحكم بأرجل الدخل والخرج في أردوينو

توفر الدوال الموجودة في هذا القسم إمكانيات أوسع ووسائل متقدمة للتحكم بأرجل الدخل والخرج في لوحة أردوينو مثل حساب طول نبضة وتوليد موجة بتردد معينة وإزاحة قيمة من رجل ووضعها في متغير وبالعكس وغيرها من الأمور. ()‎notone توقف الدالة noTone()‎ توليد موجةٍ مربَّعةٍ على رجل معيَّنة أُنشئَت باستعمال الدالة tone()‎. ()‎pulsein تحسب الدالة pulseIn()‎ طول نبضةٍ (إمَّا HIGH أو LOW) على رجل محدَّدة. ()‎pulseinlong الدالة pulseInLong()‎ هي دالةٌ بديلةٌ محسَّنةٌ للدالة pulseIn()‎، إذ يمكنها التعامل مع نبضات ومقاطعات طويلة متأثرة ...

الدالة pulseIn()‎ في أردوينو

تحسب الدالة pulseIn()‎ طول نبضةٍ (إمَّا HIGH أو LOW) على رجل محدَّدة. إن كانت مثلًا القيمة الممرَّرة إلى الدالة هي HIGH، فستنتظر حتى تتغير حالة الرجل من LOW إلى HIGH لتبدأ حساب الوقت الذي تستغرقه الإشارة للعودة إلى الحالة LOW لتُوقِف المؤقت حينذاك؛ تعيد الدالة بعدئذٍ طول النبضة بواحدة الميكروثانية أو تستسلم وتعيد القيمة 0 بعد انتهاء المهلة الزمنية المحدَّدة إن لم تعثر على نبضة كاملة خلالها. يحدَّد التوقيت في هذه الدالة بطريقة تجريبية ويحتمل أن يحمل أخطاءً كلما زاد ...

الدالة shiftIn()‎ في أردوينو

تزيح الدالة shiftIn()‎ بايتًا من البيانات من رجل محدَّدة إلى متغيِّر مقدار بتٍّ واحدٍ في كل مرة تتغير فيها حالة النبضة على رجل أخرى إلى HIGH. يمكن ترتيب عملية قراءة وإزاحة البتات إمَّا بدءًا من البت الأكثر أهمية (أقصى اليسار) أو من البت الأقل أهمية (أقصى اليمين). البنية العامة byte incoming = shiftIn(dataPin, clockPin, bitOrder) في كل بت، تقدح الرجل clockPin عملية قراءة البت التالي من الرجل dataPin عند الجبهة الصاعدة للإشارة (أي عندما تنتقل النبضة من LOW إلى HIGH) وتخزينه ...

الدالة shiftOut()‎ في أردوينو

تزيح الدالة shiftOut()‎ بايتًا من البيانات إلى رجل محدَّدة مقدار بتٍّ واحدٍ في كل مرة تتغير فيها حالة النبضة على رجل أخرى إلى HIGH. يمكن ترتيب عملية إزاحة البتات وكتابتها على الرجل إمَّا بدءًا من البت الأكثر أهمية (أقصى اليسار) أو من البت الأقل أهمية (أقصى اليمين). البنية العامة shiftOut(dataPin, clockPin, bitOrder, value) في كل بت، تقدح الرجل clockPin عملية كتابة البت التالي من القيمة value على الرجل dataPin عند الجبهة الصاعدة للإشارة (أي عندما تنتقل النبضة من LOW إلى HIGH) ...

الدالة analogReadResolution()‎ في أردوينو

الدالة analogReadResolution()‎ هي دالةٌ ملحقةٌ بالواجهة البرمجية التشابهية (Analog API) مخصَّصةٌ للوحات أردوينو Due، و Zero، و MKR، إذ تُستعمَل لضبط حجم (دقة) القيمة المعادة من الدالة analogRead()‎. يمكن استدعاء هذه الدالة لضبط الدقة إلى القيمة الافتراضية التي هي 10 بت (تمثِّل القيم بين 0 و 1023) من أجل التوافقية الرجوعية مع اللوحات التي تعتمد على متحكمات AVR. تملك لوحات أردوينو التي من عائلة Due، و Zero، و MKR إمكانية تحويل الإشارات التشابهية إلى رقمية عبر محول تشابهي رقمي (ADC، ...

الدالة analogRead()‎ في أردوينو

تقرأ الدالة analogRead()‎ قيمة رجل تشابهية محدَّدة وتعيدها. تحوي لوحة أردوينو ست قنوات (سبع قنوات في اللوحات MKR، وثمان قنوات في اللوحات Mini و Nano، وست عشرة قناة في اللوحات Mega) لتحويل الإشارات التشابهية إلى رقمية بدقة 10 بت. هذا يعني أنه ستُحوَّل قيمة الجهد التي تقع بين 0 و 5 فولط إلى قيمة عددية صحيحة مقابلة لها تقع بين 0 و 1023. بالتالي، تكون دقة عمليات قراءة القيم هي التشابهية هي: 5 فولط / 1024 وحدة، أو 0.0049 فولط ...

الدالة pulseInLong()‎ في أردوينو

الدالة pulseInLong()‎ هي دالةٌ بديلةٌ محسَّنةٌ للدالة pulseIn()‎، إذ يمكنها التعامل مع نبضات ومقاطعات طويلة متأثرة بحالات مختلفة. تقرأ الدالة pulseInLong()‎ طول نبضةٍ (إمَّا HIGH أو LOW) على رجل محدَّدة. إن كانت مثلًا القيمة الممرَّرة إلى الدالة هي HIGH، فستنتظر تغيِّر حالة الرجل من LOW إلى HIGH لتبدأ حساب الوقت الذي تستغرقه الإشارة للعودة إلى الحالة LOW مجدَّدًا لتُوقِف المؤقت حينذاك؛ تعيد الدالة بعدئذٍ طول النبضة بواحدة الميكروثانية أو تستسلم وتعيد القيمة 0 بعد انتهاء المهلة الزمنية المحدَّدة إن لم ...

الدالة tone()‎ في أردوينو

تولِّد الدالة tone()‎ موجةً مربَّعةً بتردد محدَّد (وبنسبة 50% لدورة العمل [duty cycle]) على رجل معيَّنة. يمكن تحديد فترة زمنية معيَّنة تُولَّد خلالها الموجة فقط أو ستستمر عملية توليد الموجة إلى أن تستدعى الدالة noTone()‎. يمكن ربط الرجل التي ستُولَّد عليها الموجة بطنَّان إجهادي (piezo buzzer) أو أي مكبر صوت لتشغيل النغمات الناتجة عن الموجة المولَّدة. يمكن توليد نغمة واحدة فقط على إحدى الأرجل، لذا إن كان هنالك نغمة تعمل على رجل معيَّنة واستدعيت الدالة tone()‎ على رجل أخرى، فلن ...

العنصر

يُمثِّل العنصر <nav> قسمًا من الصفحة غرضه هو توفير روابط للتنقل، سواءً كانت ضمن المستند نفسه أو إلى مستندات أخرى. من أكثر الأمثلة شيوعًا هي القوائم وجداول المحتويات والفهارس. في هذا المثال استخدمنا العنصر <nav> لاحتواء قائمة غير مرتبة <ul> من الروابط. يمكن عرض هذه القائمة كشريط جانبي أو شريط تنقل أو قائمة منسدلة باستخدام قواعد CSS الملائمة: <nav> <ul> <li><a href="https://mostaql.com">مستقل</a></li> <li><a href="https://khamsat.com">خمسات</a></li> <li><a href="https://academy.hsoub.com">أكاديمية حسوب</a></li> ...

التابع String.split في روبي

يُقسِّم التابع split السلسلة النصية التي استدعي معها إلى سلاسل نصية فرعية اعتمادًا على فاصل محدَّد ثم يعيد تلك السلاسل الفرعية في مصفوفة. البنية العامة scan(pattern) → array scan(pattern) {|match, ...| block } → str المعاملات pattern إن كان هذا المعامل سلسلة نصية، فستُسعمَل هذه السلسلة على أنَّها الفاصل الذي يفصل أجزاء السلسلة النصية المعطاة عن بعضها بعضًا. أمَّا إن كان هذا المعامل فراغًا واحدًا، فستُقسَّم السلسلة النصية المعطاة عند كل فراغ موجود بين كلماتها؛ وعند وجود أكثر من فراغ واحد، ...

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

الجدول ASCII في أردوينو

يرجع الترميز ASCII (اختصارٌ إلى American Standard Code for Information Interchange) إلى ستينيات القرن الماضي، وكان يُعدُّ الطريقة القياسية المتبعة آنذاك (والتي لا تزال مستعملة إلى يومنا هذا) في ترميز النصوص عدديًّا. انتبه إلى أنَّ المحارف 32 الأولى من هذا الجدول هي محارف غير مطبوعة (non-printing characters)، وتدعى غالبًا محارف التحكم (control characters). القيمة العشرية القيمة الست عشرية المحرف   القيمة العشرية القيمة الست عشرية المحرف القيمة العشرية القيمة الست عشرية المحرف 0 00 NUL (null) 42 2A * 85 ...

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