logo

متغيرات باش

المتغيرات هي الجزء الأساسي في البرمجة، أو يمكننا القول أنها روح لغة البرمجة. تحدد المتغيرات موقع الذاكرة من خلال الأحرف والأرقام والأبجدية الرقمية. يتم استخدامها ليتم الرجوع إليها ومعالجتها في برنامج كمبيوتر.

ما هي المتغيرات؟

المتغيرات هي الحاويات التي تخزن البيانات أو المعلومات المفيدة كقيمة بداخلها. فيما يلي بناء جملة المتغير:

 Variable_name =value 

المتغير هو شكل مدمج من كلمتين، أي تختلف + قادر، مما يعني أنه يمكن تغيير قيمته، ويمكن استخدامه لعدة مرات.

قراءة ملفات json

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

ملاحظة: لا يمكننا تحديد اسم متغير يبدأ بأي رقم.

ما هي متغيرات باش؟

لا يمكننا استخدام متغيرات bash دون الحصول على المعلومات الصحيحة ( بناء الجملة، أنواع البيانات، أنواع، العمل ) حول هذا الموضوع، فلنستعرض هذا البرنامج التعليمي الموجز للحصول على نظرة عامة مناسبة لمتغيرات Bash.

في البداية، تعرف على بناء الجملة.

بناء الجملة:

 Variable_name=value 

القواعد المحددة لتحديد متغيرات Bash:

  1. قم ببدء اسم المتغير بعلامة الدولار ($) أثناء قراءة المتغير أو طباعته.
  2. اترك علامة الدولار ($) أثناء تعيين متغير بأي قيمة.
  3. قد يكون اسم المتغير أبجديًا رقميًا، أو قد يكون مكتوبًا بشرطة سفلية (_).
  4. اسم المتغير حساس لحالة الأحرف: يعتبر x وX كمتغيرين مختلفين.
  5. يمكن كتابة اسم المتغير إما بأحرف UPPER_CASE أو LOWER_CASE أو مزيج من الاثنين كما تريد.
  6. يمكن وضع المتغير في أي مكان في Bash Script أو في سطر الأوامر، لأنه في وقت التشغيل، سيستبدله Bash بالقيمة المخصصة له. أصبح ذلك ممكنًا بسبب إجراء الاستبدال قبل تشغيل الأمر.
  7. يجب ألا تكون هناك مسافة بيضاء على جانبي علامة المساواة (=) بين اسم المتغير وقيمته. وفيما يلي بعض الأمثلة على متغيرات غير صالحة وجود مسافات بيضاء (يُشار إليها بالنقاط ...) بينهما كما هو موضح أدناه:
    فار1=...متغير1
    var2...=variable2
    var3...=...variable3
  8. ليست هناك حاجة لاستخدام أي علامات اقتباس، سواء كانت مفردة أو مزدوجة، لتحديد متغير بقيمة حرف واحد مثل var1=variable . لإدخال عدة كلمات أو سلسلة كعنصر واحد في متغير، استخدم علامات الاقتباس لتضمين المحتوى الخاص بك في هذا المتغير.
    • يساعد الاقتباس المفرد ('') في التعامل مع كل شخصية.
    • يساعد الاقتباس المزدوج ('') على إجراء الاستبدال.

أنواع البيانات

في لغات البرمجة الرسمية، عليك تحديد نوع البيانات لأي متغير في وقت إعلان المتغير. على سبيل المثال:

 int year=2012 char comp_name='jtp' 

لكن في حالة Bash، لا يتعين عليك تحديد نوع بيانات أي متغير في وقت إعلان المتغير. متغيرات باش هي غير مكتوب ، وهو ما يعني فقط كتابة اسم المتغير عن طريق تعيين قيمته، وسوف يأخذ في الاعتبار نوع البيانات هذا تلقائيًا.

بحيث إذا قمت بتعيين أي قيمة رقمية للمتغير، فستعمل كعدد صحيح وإذا قمت بتعيين قيمة حرف للمتغير، فستكون سلسلة.

 year=2012 comp_name=jtp 

باستخدام أمر الصدى، قم بقراءتها عن طريق تعيين علامة $ قبل اسمها مثل

صدى $ سنة
صدى اسم $

أنواع متغيرات باش

هناك نوعان من المتغيرات في الصدفة أو أي نظام UNIX.

  1. المتغيرات المحددة من قبل النظام
  2. المتغيرات المعرفة من قبل المستخدم

1. المتغيرات المحددة من قبل النظام: هذه هي المتغيرات المحددة مسبقًا حيث يتم إنشاؤها وصيانتها بواسطة نظام التشغيل LINUX نفسه. اصطلاحهم القياسي هو أنه يتم تعريفهم بشكل عام بأحرف كبيرة، أي UPPER_CASE. لذا، كلما رأيت متغيرًا محددًا بأحرف كبيرة، فمن المرجح أن يكون متغيرًا محددًا من قبل النظام.

هذه هي المتغيرات التالية المحددة من قبل النظام كما هو موضح أدناه:

1. باش يمثل اسم شل.

مثال:

 BASH=/usr/bin/bash 

2.BASH_VERSION يحدد إصدار الصدفة الذي يحمله Bash.

مثال:

 BASH_VERSION=4.2.46(2) 

3. الأعمدة تحديد لا. من الأعمدة لشاشتنا.

مثال:

 COLUMNS=80 

4. المنزل يحدد الدليل الرئيسي للمستخدم.

مثال:

 HOME=/home/jatpoint 

5. اسم السجل يحدد اسم مستخدم التسجيل.

مثال:

 LOGNAME=javatpoint 

6. أوستايب يحكي نوع نظام التشغيل.

مثال:

 OSTYPE=linux-gnu 

7. الأشخاص ذوي الإعاقة يمثل دليل العمل الحالي.

مثال:

 PWD=/home/javatpoint 

8. اسم المستخدم يحدد اسم المستخدم الذي قام بتسجيل الدخول حاليًا.

مثال:

 USERNAME=javatpoint 

لمعرفة قائمة هذه المتغيرات في نظامك، اكتب الأوامر مجموعة، البيئة ، و printenv على محطة سطر الأوامر على النحو التالي:

1. كتابة تعيين يأمر.

انتاج:

متغيرات باش

2. كتابة بيئة يأمر

انتاج:

متغيرات باش

3. كتابة الأمر printenv

انتاج:

متغيرات باش

لنستدعي هذه المتغيرات من خلال Bash Shell. فيما يلي الخطوات المحددة:

الخطوة 1: قم بإنشاء برنامج نصي باسم Bash_sdvar واكتب الكود التالي على Bash Console كما يلي:

 #! /bin/bash # Bash System-defined Variables echo $HOME # Home Directory echo $PWD # current working directory echo $BASH # Bash shell name echo $BASH_VERSION # Bash shell Version echo $LOGNAME # Name of the Login User echo $OSTYPE # Type of OS 

الخطوة 2. انظر إلى Bash Console الموضح أدناه:

متغيرات باش

الخطوه 3. حفظ وتنفيذ البرنامج النصي. سيظهر لك الناتج كما ترون في الصورة أدناه.

انتاج:

متغيرات باش

2. المتغيرات المعرفة من قبل المستخدم: يتم إنشاء هذه المتغيرات وصيانتها من قبل المستخدم. بشكل عام، يتم تعريف هذه الأنواع من المتغيرات في LOWER_CASES. لا توجد أي قاعدة صارمة لكتابة هذه المتغيرات بالأحرف الصغيرة. يمكننا كتابتها بالأحرف الكبيرة أيضًا.

لنقم بإنشاء Bash Script لتعريف هذه المتغيرات. اتبع الخطوات الواردة أدناه:

الخطوة 1. إنشاء برنامج نصي اسمه bash_yard واكتب الكود التالي على Bash Console:

 #! /bin/bash # User-Defined Variables name=Peter ROLL_NO=5245325 echo 'The student name is $name and his Roll number is $ROLL_NO.' 

الخطوة 2. راجع الكود الموجود على Bash Console.

متغيرات باش

الخطوه 3. حفظ وتنفيذ البرنامج النصي.

انتاج:

متغيرات باش

عمل متغيرات باش

بعد العرض التوضيحي الأساسي للمتغيرات، دعنا ننتقل لمعرفة كيف تعمل؟

هناك إجراءان نقوم بتنفيذهما عادةً لمتغير في Bash كما هو موضح أدناه:

  • تحديد قيمة للمتغير
  • قراءة القيمة لذلك.

يمكن تعيين قيمة متغيرة بطرق مختلفة، الطريقة الأكثر شيوعًا هي تعيين القيمة مباشرةً. لقراءة متغير، يمكننا وضع اسمه (يسبقه علامة $) في أي مكان في البرنامج النصي.

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

ملاحظة: يعمل كلا النوعين من المتغيرات في Bash (التي ناقشناها) على الجهاز الطرفي وكذلك على البرنامج النصي Bash. دعونا نرى عملهم على Terminal و Bash من خلال مثال مباشر:

مثال: اتصل باسم المستخدم بواسطة XYZ، وموقعه الذي يعمل فيه حاليًا، وإصدار Bash Shell الذي يستخدمه في Bash Scripting.

1. العمل على المحطة

متغيرات باش

2. العمل على باش شل

راجع البرنامج النصي المسمى بواسطة Bash_Var الموضح أدناه:

متغيرات باش

في 3بحث وتطويرخط البرنامج النصي ، لقد أعلنا عن متغير اسم المستخدم لتخزين اسم المستخدم XYZ كقيمته.

في السطرين الأخيرين لقد قمنا بطباعة الرسالة المقصودة باستخدام صدى صوت يأمر.

يوجد متغيران وأمر واحد في هذه الرسالة. ويسبق كل واحد منهم علامة الدولار ($) حيث:

    اسم المستخدمهو متغير محدد من قبل المستخدم لاستدعاء اسم المستخدم،BASH_VERSIONهو متغير محدد من قبل النظام، والذي يطلق عليه شل نفسه. يتم استخدامه لطباعة نسخة Bash Shell،الأشخاص ذوي الإعاقةيتم استخدام الأمر لطباعة الموقع الحالي للمستخدم.

لفهم أفضل، قم بإنشاء هذا البرنامج النصي باتباع الكود المحدد:

 #! /bin/bash #Bash Variables USER_NAME=XYZ echo Hey there! $USER_NAME is any user currently working on the directory $PWD with Bash Shell Version $BASH_VERSION. 

وسوف تظهر لك النتيجة كما ترون في الصورة التالية:

انتاج:

متغيرات باش

هناك المزيد من الأمثلة لممارسة المتغيرات على كل من المحطة الطرفية و Bash Shell. من خلال متابعة مجموعة القاعدة (تمت مناقشته من قبل) لديك ممارسة على المتغيرات على النحو التالي:

أ. استخدام محطة سطر الأوامر

1. ضبط المتغيرات

متغيرات باش

2. قراءة المتغيرات والإشارة إليها

متغيرات باش

3. المتغيرات غير صالحة

متغيرات باش

4. الجمع بين متغيرين من السلسلة

متغيرات باش

5. تسلسل السلاسل مع المتغيرات

متغيرات باش

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

متغيرات باش

ب. استخدام برنامج Bash النصي:

إنه مثال على الجمع بين متغيرات السلسلة.

متغيرات باش

انتاج:

متغيرات باش

وسائط سطر الأوامر

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

 ./script_name arg1 arg2 arg3..... 

يجب ألا يكون هناك مسافة بين اسم البرنامج النصي وكافة وسائط التمرير.

كيفية استخدام وسيطات سطر الأوامر؟

في Bash Shell، يتم استخدامها مع الإشارة إلى المعلمات الافتراضية التالية أو المتغيرات الخاصة.

    0 دولاريحدد اسم البرنامج النصي الذي سيتم استدعاؤه.1 دولار - 9 دولاراتيخزن أسماء الوسائط التسعة الأولى أو يمكن استخدامه كمواضع الوسائط.$#يحدد العدد الإجمالي (العدد) للوسائط التي تم تمريرها إلى البرنامج النصي.$*يخزن جميع وسيطات سطر الأوامر من خلال ضمها معًا.$@يخزن قائمة الوسائط كمصفوفة.$؟يحدد معرف العملية للبرنامج النصي الحالي.$$يحدد حالة الخروج للأمر الأخير أو لعملية التنفيذ الأحدث.$!يعرض معرف آخر مهمة في الخلفية.

فيما يلي الطريقتان اللتان نستخدمهما لتمرير وسيطات سطر الأوامر:

الطريقة الأولى: استخدام رقم المنصب

إنها الطريقة الأولى للوصول إلى الوسائط باستخدام المعلمات الافتراضية (...). الصورة أدناه توضح ذلك:

متغيرات باش

انتاج:

متغيرات باش

الطريقة الثانية: استخدام المصفوفة.

إنها الطريقة الثانية لتمرير الوسائط كمصفوفة. اتبع الخوارزمية المحددة لتطبيق هذه الطريقة.

الخطوة 1: إنشاء برنامج نصي باش.

الخطوة 2: قم بتعريف أي اسم متغير وقم بتعيين قيمته كـ بالشكل التالي:

 variable_name=('$@') 

أين $@ هي الوسيطة الافتراضية المستخدمة لتخزين الوسائط (التي نمررها) كمصفوفة.

الخطوه 3: قم بعرض الوسائط عن طريق تحديد فهرس المصفوفة الخاص بها بالشكل التالي:

 ${variable_name[i]} 

الخطوة 4: حفظ وإغلاق البرنامج النصي.

الخطوة 5: قم بتنفيذ البرنامج النصي عن طريق تمرير الوسائط.

شاهد البرنامج التالي:

برنامج:

 #!/bin/bash args=('$@') echo ${args[0]} ${args[1]} ${args[2]} ${args[3]} 

على وحدة تحكم باش:

متغيرات باش

انتاج:

متغيرات باش

استبدال الأوامر

وفقا للوثائق الرسمية باش

'يسمح استبدال الأوامر بإخراج أمر ليحل محل الأمر نفسه. يقوم Bash بتنفيذ التوسيع عن طريق تنفيذ الأمر في بيئة غلاف فرعي واستبدال استبدال الأمر بالمخرج القياسي للأمر، مع حذف أي أسطر جديدة لاحقة. لا يتم حذف الأسطر الجديدة المضمنة، ولكن قد تتم إزالتها أثناء تقسيم الكلمات.'

يشير استبدال الأوامر إلى التوسيع الذي يؤديه Bash لنا. يأخذ مخرجات أمر Bash، ويخزنه في متغير (بشكل عام)، ويعرض مرة أخرى مع الصدى.

استبدال الأوامر يوفر مرونة البيانات فيما يتعلق بالبرمجة النصية والتخصيص المتغير. إنه أمر بسيط وسهل للحصول على إخراج سطر أوامر واحد. في حالة تجاوز الإخراج بضعة أسطر، تتم إزالة الأسطر اللاحقة الجديدة، وينتهي المحتوى الكامل للمخرج في سطر واحد.

انظر بناء الجملة للاستخدام:

بناء الجملة

الشكل الكلاسيكي لاستبدال الأوامر في متغير أو استبدال الأوامر يستخدم علامات الاقتباس الخلفية (`...`)، كما هو موضح أدناه:

 variable_name=`command_name` variable_name=`command_name [option...] argument1 argument2...` variable_name=`/path/to/command` 

الآن، نقوم باستبدال الأوامر من خلال وضع الأوامر بين قوسين (مسبوقة بعلامة الدولار ($)). الق نظرة:

 variable_name=$(command_name) variable_name=$(command_name [option...] argument1 argument2...) variable_name=$(path/to/command) 

لذا، دعونا نقوم باستبدال الأوامر بمثال وفقًا للمناقشة.

في هذا المثال، نقوم باستبدال أمر واحد ls في متغير. انظر المحطة.

متغيرات باش

خط 1: بدون استبدال الأوامر، يتم توسيع الإخراج في أسطر متعددة.

السطر 2 و 3: مع استبدال الأوامر، يتم إنهاء الإخراج على سطر واحد (يتم توفير المساحة عن طريق إزالة الأسطر المتأخرة حديثًا).

فيما يلي برنامج Bash النصي لاختبار استبدال الأوامر.

برنامج:

 #! /bin/bash # command substitution lsResult=$(ls) echo 'My files are:' $lsResult 

انظر وحدة تحكم باش:

متغيرات باش

انتاج:

متغيرات باش