Bash functions: Difference between revisions

From binaryoption
Jump to navigation Jump to search
Баннер1
(@pipegas_WP)
 
(@pipegas_WP)
 
Line 1: Line 1:
# دوال Bash
# دوال باش: دليل شامل للمبتدئين


دوال Bash هي مجموعة من الأوامر المجمعة معًا لتنفيذ مهمة محددة. تعتبر الدوال أداة قوية في [[Bash (برمجة)]] لتبسيط المهام المتكررة، وتنظيم التعليمات البرمجية، وجعلها أكثر قابلية للقراءة والصيانة.  يشبه مفهوم الدوال في Bash إلى حد كبير مفهوم [[الدوال في البرمجة]] في لغات البرمجة الأخرى.
== مقدمة ==


== ما هي الدوال ولماذا نستخدمها؟ ==
دوال باش (Bash functions) هي مجموعة من الأوامر المجمعة التي يمكن استدعاؤها باسم معين. تعتبر الدوال أداة قوية في [[برمجة شل]] (Shell Scripting) لتبسيط المهام المتكررة، وتنظيم الكود، وتحسين قابليته للقراءة والصيانة. هذا المقال مخصص للمبتدئين ويهدف إلى تعريفهم بمفهوم دوال باش، وكيفية تعريفها، واستخدامها، بالإضافة إلى بعض الأمثلة العملية. فهم الدوال أساسي لأي شخص يرغب في كتابة [[سكريبتات باش]] (Bash scripts) أكثر تعقيدًا وفعالية.


تخيل أنك تحتاج إلى تكرار سلسلة من الأوامر عدة مرات في [[نصوص Bash]]. بدلاً من نسخ ولصق هذه الأوامر في كل مرة، يمكنك تعريف دالة تحتوي على هذه الأوامر واستدعاء الدالة كلما احتجت إليها. هذا يوفر الوقت، ويقلل من الأخطاء، ويجعل التعليمات البرمجية أكثر تنظيمًا.
== ما هي دوال باش؟ ==


*  <b>التبسيط:</b> تقلل الدوال من تكرار التعليمات البرمجية.
ببساطة، الدالة هي كتلة من التعليمات البرمجية التي تقوم بمهمة محددة. بدلاً من كتابة نفس التعليمات البرمجية مرارًا وتكرارًا في [[سكريبت باش]]، يمكنك تعريف دالة تقوم بهذه المهمة، ثم استدعاء الدالة كلما احتجت إليها. هذا يوفر الوقت والجهد، ويجعل الكود أكثر تنظيمًا وسهولة في التعديل.
*  <b>التنظيم:</b> تساعد الدوال في تقسيم التعليمات البرمجية المعقدة إلى أجزاء أصغر وأكثر قابلية للإدارة.
*  <b>القابلية للقراءة:</b> تجعل الدوال التعليمات البرمجية أسهل في الفهم.
*  <b>الصيانة:</b> تسهل الدوال تحديث التعليمات البرمجية وتصحيحها.


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


يتم تعريف الدوال في Bash باستخدام الكلمة الرئيسية `function` أو ببساطة اسم الدالة متبوعًا بأقواس. إليك مثال:
يتم تعريف الدوال في باش باستخدام الكلمة المفتاحية `function` أو ببساطة عن طريق كتابة اسم الدالة متبوعًا بأقواس. إليك الطريقتان:


```bash
* '''باستخدام `function`'''
function greet {
 
  echo "أهلاً بك!"
  ```bash
}
  function اسم_الدالة {
```
    # أوامر الدالة
  }
  ```
 
* '''بدون `function`'''
 
  ```bash
  اسم_الدالة() {
    # أوامر الدالة
  }
  ```


أو ببساطة:
على سبيل المثال:


```bash
```bash
greet() {
greeting() {
   echo "أهلاً بك!"
   echo "مرحباً بك!"
}
}
```
```


في كلا المثالين، يتم تعريف دالة باسم `greet` تطبع الرسالة "أهلاً بك!".
== استدعاء الدوال ==


== استدعاء الدوال ==
بعد تعريف الدالة، يمكنك استدعاؤها ببساطة عن طريق كتابة اسمها.


لاستدعاء دالة، ما عليك سوى كتابة اسمها:
مثال:


```bash
```bash
greet
greeting  # سيطبع "مرحباً بك!"
```
```
سيؤدي هذا إلى تنفيذ الأوامر الموجودة داخل الدالة `greet` وطباعة الرسالة "أهلاً بك!".


== تمرير المعاملات إلى الدوال ==
== تمرير المعاملات إلى الدوال ==


يمكن للدوال أن تأخذ [[معاملات]]. يتم الوصول إلى هذه المعاملات داخل الدالة باستخدام متغيرات خاصة:
يمكن للدوال استقبال [[معاملات]] (Parameters) لتخصيص سلوكها. يتم الوصول إلى هذه المعاملات باستخدام المتغيرات الخاصة `$1`، `$2`، `$3`، وهكذا، حيث `$1` يمثل المعامل الأول، `$2` يمثل المعامل الثاني، وهكذا. `$0` يمثل اسم الدالة نفسها.
 
`$1`: المعامل الأول.
`$2`: المعامل الثاني.
`$3`: المعامل الثالث.
*  وإلخ.
`$@`: جميع المعاملات.
`$#`: عدد المعاملات.


إليك مثال لدالة تأخذ اسمًا كمعامل وتطبع رسالة ترحيب مخصصة:
مثال:


```bash
```bash
greet_personalized() {
greet() {
   echo "أهلاً بك يا $1!"
   echo "مرحباً يا $1!"
}
}


greet_personalized "أحمد"
greet علي  # سيطبع "مرحباً يا علي!"
greet فاطمة # سيطبع "مرحباً يا فاطمة!"
```
```


سيؤدي هذا إلى طباعة الرسالة "أهلاً بك يا أحمد!".
== إرجاع القيم من الدوال ==


== إرجاع القيم من الدوال ==
يمكن للدوال إرجاع [[قيم]] (Values) باستخدام الأمر `return`. ومع ذلك، فإن `return` يُستخدم بشكل أساسي لإرجاع رمز حالة الخروج (exit status) للدالة (عادةً 0 للنجاح وأي قيمة أخرى للفشل). لإرجاع قيمة فعلية، يمكن للدالة طباعة القيمة إلى الإخراج القياسي (standard output) ثم التقاطها باستخدام أمر مثل `$(اسم_الدالة)`.


يمكن للدوال إرجاع قيم باستخدام الأمر `return`.  القيمة المرجعة هي عدد صحيح بين 0 و 255.  يمكن الوصول إلى القيمة المرجعة باستخدام المتغير `$?`.
مثال:


```bash
```bash
add() {
add() {
   local sum=$(( $1 + $2 ))
   result=$(( $1 + $2 ))
   return $sum
   echo $result
}
}


add 5 3
sum=$(add 5 3)
echo $?
echo "المجموع هو: $sum" # سيطبع "المجموع هو: 8"
```
```


سيؤدي هذا إلى طباعة الرقم 8.
== المتغيرات المحلية والعامة ==


== المتغيرات المحلية ==
* '''المتغيرات المحلية''' (Local Variables): يتم تعريفها داخل الدالة باستخدام الكلمة المفتاحية `local`. هذه المتغيرات تكون مرئية فقط داخل الدالة ولا تؤثر على المتغيرات الموجودة خارجها.
* '''المتغيرات العامة''' (Global Variables): يتم تعريفها خارج الدالة وتكون مرئية في جميع أنحاء [[السكريبت]]. يمكن للدوال الوصول إلى المتغيرات العامة وتعديلها.


لتعريف متغير محلي داخل الدالة، استخدم الكلمة الرئيسية `local`.  تكون المتغيرات المحلية مرئية فقط داخل الدالة.  هذا يساعد على تجنب التعارضات مع المتغيرات التي قد تكون موجودة في [[بيئة Bash]] الخارجية.
مثال:


```bash
```bash
global_var="قيمة عامة"
my_function() {
my_function() {
   local my_variable="هذا متغير محلي"
   local local_var="قيمة محلية"
   echo $my_variable
   echo "المتغير المحلي: $local_var"
  echo "المتغير العام: $global_var"
  global_var="قيمة عامة جديدة" # تعديل المتغير العام
}
}


my_function
my_function
# echo $my_variable  # هذا سيؤدي إلى خطأ، لأن المتغير غير موجود خارج الدالة
echo "المتغير العام بعد الدالة: $global_var" # سيطبع "قيمة عامة جديدة"
```
```


== أمثلة عملية ==
== أمثلة عملية ==


<b>دالة لحساب متوسط ​​القيم:</b> يمكن استخدامها في [[تحليل البيانات]].
* '''التحقق من وجود ملف:'''
*   <b>دالة للتحقق من وجود ملف:</b> مفيدة في [[أتمتة المهام]].
 
*  <b>دالة لنسخ الملفات:</b> يمكن استخدامها في [[النسخ الاحتياطي للبيانات]].
```bash
*   <b>دالة لإرسال رسائل بريد إلكتروني:</b> تستخدم في [[إشعارات النظام]].
file_exists() {
*   <b>دالة لتحليل سجلات النظام:</b> مهمة في [[مراقبة النظام]].
   if [ -f "$1" ]; then
    echo "الملف موجود"
    return 0
  else
    echo "الملف غير موجود"
    return 1
  fi
}
 
file_exists my_file.txt
```
 
* '''حساب متوسط ​​قائمة من الأرقام:'''
 
```bash
calculate_average() {
  local sum=0
  local count=0
  for num in "$@"; do # $@ يمثل جميع المعاملات
    sum=$((sum + num))
    count=$((count + 1))
  done
  if [ $count -gt 0 ]; then
    average=$(echo "scale=2; $sum / $count" | bc) # استخدم bc للحسابات العشرية
    echo $average
   else
    echo "لا توجد أرقام لإيجاد المتوسط"
   fi
}


== الدوال في سياق تداول الخيارات الثنائية ==
average=$(calculate_average 10 20 30 40)
echo "المتوسط هو: $average"
```


على الرغم من أن الدوال في Bash ليست مرتبطة بشكل مباشر بتداول [[الخيارات الثنائية]]، إلا أنها يمكن أن تكون مفيدة في أتمتة بعض المهام المتعلقة بالتداول، مثل:
== نصائح لتحسين استخدام الدوال ==


*   <b>تنزيل بيانات الأسعار:</b> يمكن لدالة تنزيل بيانات الأسعار من [[واجهات برمجة التطبيقات]] المختلفة.
* استخدم أسماء وصفية للدوال لتعكس وظيفتها.
*   <b>تحليل بيانات الأسعار:</b> يمكن لدالة إجراء [[التحليل الفني]] الأساسي، مثل حساب [[المتوسطات المتحركة]].
* قم بتعليق الدوال لشرح ما تفعله.
*   <b>إرسال إشعارات التداول:</b> يمكن لدالة إرسال إشعارات عبر البريد الإلكتروني أو الرسائل النصية عند استيفاء شروط تداول معينة.
* قسّم المهام الكبيرة إلى دوال أصغر وأكثر قابلية للإدارة.
*   <b>تنفيذ أوامر التداول:</b> (بحذر شديد!) يمكن لدالة تنفيذ أوامر التداول تلقائيًا، ولكن هذا يتطلب عناية فائقة لتجنب الخسائر غير المتوقعة.
* استخدم المتغيرات المحلية كلما أمكن ذلك لتجنب التعارضات.
*   <b>إدارة المخاطر:</b> يمكن استخدام الدوال لحساب حجم الصفقة بناءً على مستوى المخاطر المطلوب.
* اختبر الدوال جيدًا قبل استخدامها في [[الإنتاج]].


== استراتيجيات تداول ذات صلة ==
== مفاهيم ذات صلة ==


*   [[استراتيجية مارتينجال]]
* [[المتغيرات في باش]]
*   [[استراتيجية فيبوناتشي]]
* [[التحكم في التدفق في باش]] (if, for, while)
*   [[استراتيجية الاختراق]]
* [[الأوامر الشرطية في باش]]
*   [[استراتيجية المتوسطات المتحركة]]
* [[عمليات الإدخال والإخراج في باش]]
*   [[استراتيجية بولينجر باند]]
* [[معالجة النصوص في باش]]
*   [[استراتيجية RSI]]
* [[استخدام bc للحسابات العشرية]]
*   [[استراتيجية MACD]]
* [[التعامل مع المصفوفات في باش]]
*   [[استراتيجية Ichimoku Cloud]]
* [[التعبيرات النمطية في باش]]
*  [[استراتيجية Price Action]]
*  [[استراتيجية التداول المتأرجح]]
*  [[استراتيجية سكالبينج]]
*  [[استراتيجية التداول اليومي]]
*  [[استراتيجية التداول الليلي]]
*  [[استراتيجية التداول الخوارزمي]]
*  [[استراتيجية التداول بناءً على الأخبار]]


== تحليل فني وحجم التداول ==
== استراتيجيات تداول الخيارات الثنائية والتحليل الفني ==


*   [[أنماط الشموع اليابانية]]
* [[استراتيجية مارتينجال]]
*   [[مستويات الدعم والمقاومة]]
* [[استراتيجية المتوسطات المتحركة]]
*   [[خطوط الاتجاه]]
* [[استراتيجية اختراق النطاق]]
*   [[تحليل حجم التداول]]
* [[تحليل الشموع اليابانية]]
*   [[مؤشر التدفق النقدي (MFI)]]
* [[مؤشر القوة النسبية (RSI)]]
*   [[مؤشر ويليامز %R]]
* [[مؤشر الماكد (MACD)]]
*   [[مؤشر ستوكاستيك]]
* [[خطوط فيبوناتشي]]
*   [[مؤشر القوة النسبية (RSI)]]
* [[تحليل حجم التداول]]
*   [[مؤشر المتوسط المتحرك للتقارب والتباعد (MACD)]]
* [[استراتيجية التداول بناءً على الأخبار]]
*   [[مؤشر بولينجر باند]]
* [[استراتيجية التداول المتأرجحة]]
*   [[مؤشر ADX]]
* [[استراتيجية التداول اليومي]]
*   [[تحليل فجوة السعر]]
* [[استراتيجية التداول طويل الأجل]]
*   [[تحليل حجم التداول]]
* [[استراتيجية التداول العكسي]]
*   [[تحليل أوامر الدعم والمقاومة]]
* [[استراتيجية التداول بناءً على الأنماط]]
*   [[تحليل الأنماط السلوكية]]
* [[تحليل بولينجر باندز]]


== الخلاصة ==
== خاتمة ==


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


[[Bash (برمجة)]] [[نصوص Bash]] [[الدوال في البرمجة]] [[معاملات]] [[بيئة Bash]] [[التحليل الفني]] [[الخيارات الثنائية]] [[واجهات برمجة التطبيقات]] [[أتمتة المهام]] [[تحليل البيانات]] [[مراقبة النظام]] [[النسخ الاحتياطي للبيانات]] [[إشعارات النظام]]
[[Category:الفئة:أوامر_باش]]
[[Category:Bash (برمجة)]]


== ابدأ التداول الآن ==
== ابدأ التداول الآن ==

Latest revision as of 19:34, 22 April 2025

  1. دوال باش: دليل شامل للمبتدئين

مقدمة

دوال باش (Bash functions) هي مجموعة من الأوامر المجمعة التي يمكن استدعاؤها باسم معين. تعتبر الدوال أداة قوية في برمجة شل (Shell Scripting) لتبسيط المهام المتكررة، وتنظيم الكود، وتحسين قابليته للقراءة والصيانة. هذا المقال مخصص للمبتدئين ويهدف إلى تعريفهم بمفهوم دوال باش، وكيفية تعريفها، واستخدامها، بالإضافة إلى بعض الأمثلة العملية. فهم الدوال أساسي لأي شخص يرغب في كتابة سكريبتات باش (Bash scripts) أكثر تعقيدًا وفعالية.

ما هي دوال باش؟

ببساطة، الدالة هي كتلة من التعليمات البرمجية التي تقوم بمهمة محددة. بدلاً من كتابة نفس التعليمات البرمجية مرارًا وتكرارًا في سكريبت باش، يمكنك تعريف دالة تقوم بهذه المهمة، ثم استدعاء الدالة كلما احتجت إليها. هذا يوفر الوقت والجهد، ويجعل الكود أكثر تنظيمًا وسهولة في التعديل.

تعريف الدوال

يتم تعريف الدوال في باش باستخدام الكلمة المفتاحية `function` أو ببساطة عن طريق كتابة اسم الدالة متبوعًا بأقواس. إليك الطريقتان:

  • باستخدام `function`
  ```bash
  function اسم_الدالة {
    # أوامر الدالة
  }
  ```
  • بدون `function`
  ```bash
  اسم_الدالة() {
    # أوامر الدالة
  }
  ```

على سبيل المثال:

```bash greeting() {

 echo "مرحباً بك!"

} ```

استدعاء الدوال

بعد تعريف الدالة، يمكنك استدعاؤها ببساطة عن طريق كتابة اسمها.

مثال:

```bash greeting # سيطبع "مرحباً بك!" ```

تمرير المعاملات إلى الدوال

يمكن للدوال استقبال معاملات (Parameters) لتخصيص سلوكها. يتم الوصول إلى هذه المعاملات باستخدام المتغيرات الخاصة `$1`، `$2`، `$3`، وهكذا، حيث `$1` يمثل المعامل الأول، `$2` يمثل المعامل الثاني، وهكذا. `$0` يمثل اسم الدالة نفسها.

مثال:

```bash greet() {

 echo "مرحباً يا $1!"

}

greet علي # سيطبع "مرحباً يا علي!" greet فاطمة # سيطبع "مرحباً يا فاطمة!" ```

إرجاع القيم من الدوال

يمكن للدوال إرجاع قيم (Values) باستخدام الأمر `return`. ومع ذلك، فإن `return` يُستخدم بشكل أساسي لإرجاع رمز حالة الخروج (exit status) للدالة (عادةً 0 للنجاح وأي قيمة أخرى للفشل). لإرجاع قيمة فعلية، يمكن للدالة طباعة القيمة إلى الإخراج القياسي (standard output) ثم التقاطها باستخدام أمر مثل `$(اسم_الدالة)`.

مثال:

```bash add() {

 result=$(( $1 + $2 ))
 echo $result

}

sum=$(add 5 3) echo "المجموع هو: $sum" # سيطبع "المجموع هو: 8" ```

المتغيرات المحلية والعامة

  • المتغيرات المحلية (Local Variables): يتم تعريفها داخل الدالة باستخدام الكلمة المفتاحية `local`. هذه المتغيرات تكون مرئية فقط داخل الدالة ولا تؤثر على المتغيرات الموجودة خارجها.
  • المتغيرات العامة (Global Variables): يتم تعريفها خارج الدالة وتكون مرئية في جميع أنحاء السكريبت. يمكن للدوال الوصول إلى المتغيرات العامة وتعديلها.

مثال:

```bash global_var="قيمة عامة"

my_function() {

 local local_var="قيمة محلية"
 echo "المتغير المحلي: $local_var"
 echo "المتغير العام: $global_var"
 global_var="قيمة عامة جديدة" # تعديل المتغير العام

}

my_function echo "المتغير العام بعد الدالة: $global_var" # سيطبع "قيمة عامة جديدة" ```

أمثلة عملية

  • التحقق من وجود ملف:

```bash file_exists() {

 if [ -f "$1" ]; then
   echo "الملف موجود"
   return 0
 else
   echo "الملف غير موجود"
   return 1
 fi

}

file_exists my_file.txt ```

  • حساب متوسط ​​قائمة من الأرقام:

```bash calculate_average() {

 local sum=0
 local count=0
 for num in "$@"; do # $@ يمثل جميع المعاملات
   sum=$((sum + num))
   count=$((count + 1))
 done
 if [ $count -gt 0 ]; then
   average=$(echo "scale=2; $sum / $count" | bc) # استخدم bc للحسابات العشرية
   echo $average
 else
   echo "لا توجد أرقام لإيجاد المتوسط"
 fi

}

average=$(calculate_average 10 20 30 40) echo "المتوسط هو: $average" ```

نصائح لتحسين استخدام الدوال

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

مفاهيم ذات صلة

استراتيجيات تداول الخيارات الثنائية والتحليل الفني

خاتمة

دوال باش هي أداة أساسية لأي شخص يعمل مع برمجة الشل. من خلال فهم كيفية تعريف الدوال واستخدامها، يمكنك كتابة سكريبتات باش أكثر قوة وكفاءة ومرونة. تدرب على الأمثلة المذكورة في هذا المقال واستكشف المزيد من الموارد لتعزيز مهاراتك في برمجة باش.

ابدأ التداول الآن

سجل في IQ Option (الحد الأدنى للإيداع $10) افتح حساباً في Pocket Option (الحد الأدنى للإيداع $5)

انضم إلى مجتمعنا

اشترك في قناة Telegram الخاصة بنا @strategybin للحصول على: ✓ إشارات تداول يومية ✓ تحليلات استراتيجية حصرية ✓ تنبيهات باتجاهات السوق ✓ مواد تعليمية للمبتدئين

Баннер