استعراض بعض أمثلة Bash Script لتعلم تقنيات برمجة Linux بسهولة

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

تُعد ملفات Bash Script إحدى الطرق الأكثر شيوعًا والتي يُمكن الوصول إليها لبرمجة الكمبيوتر الذي يعمل بنظام Linux. ستُساعدك الأمثلة البسيطة هذه على فهم العملية وتعريفك بأساسيات Bash Script.

يُعتبر استخدام Bash Script أمرًا حيويًا للتحكم في العمليات وتحسين فعالية البرمجة. يقدم هذا المقال نظرة شاملة على مجموعة من أمثلة Bash Script التي تُساعدك على استكشاف وفهم البرمجة في بيئة Linux بسهولة. تحقق من مُقارنة بين Zsh و Bash: اختيار واجهة الأوامر (Shell) المُناسبة للبرمجة وإدارة النصوص.

استعراض بعض أمثلة Bash Script لتعلم تقنيات برمجة Linux بسهولة - لينكس

1. كيفية طباعة Hello World على الشاشة باستخدام Bash

يُعد مثال Hello World طريقة رائعة للتعرف على أي لغة برمجة، و Bash ليس استثناءً.

إليك كيفية طباعة “Hello World” على الشاشة باستخدام Bash:

  • افتح مُحرِّر نصوص وابدأ في تحرير ملف جديد يحتوي على أسطر التعليمات البرمجية التالية.
  • يجب أن يبدو السطر الأول من نصوص Bash دائمًا كما يلي:
#!/bin/bash

ملاحظة: يُعد أمر Shebang (#!/bin/bash) ضروريًا لأنَّ Sell تستخدمه لتحديد كيفية تشغيل البرنامج النصي. في هذه الحالة، يستخدم مُترجم Bash.

  • أي سطر يبدأ بالرمز # يُعتبر تعليقًا. يُعد سطر Shebang حالة خاصة، ولكن يُمكنك استخدام تعليقاتك الخاصة لشرح الكود الذي تكتبه. أضف تعليقًا على السطر 2، على سبيل المثال:
# Print some text from a bash script
  • يُمكنك الطباعة إلى الإخراج القياسي باستخدام أمر echo، متبوعًا بالقيمة التي تُريد طباعتها. أضف ما يلي في السطر 3:
echo "Hello World"
  • احفظ البرنامج النصي، ويُفضل أن يكون بامتداد .sh، على سبيل المثال. hello_world.sh. لا يُعد التمديد شرطًا، ولكنه تقليد من المفيد الالتزام به.
  • لتشغيل البرنامج النصي الخاص بك، اجعل الملف قابلاً للتنفيذ. استخدم الأمر chmod (“وضع التغيير”) مع الوسيطة +x (“القابل للتنفيذ”) واسم البرنامج النصي:
chmod +x hello_world.sh
  • استخدم هذا الأمر لتشغيل البرنامج النصي من داخل دليله:
./hello_world.sh
  • عند تشغيل البرنامج النصي، فإنه سيطبع النص “Hello World” في نافذة Terminal:

استعراض بعض أمثلة Bash Script لتعلم تقنيات برمجة Linux بسهولة - لينكس

2. إنشاء دليل عن طريق قراءة المُدخلات

من خلال Bash Script، يُمكنك تشغيل أي تطبيق قد تقوم بتشغيله عادةً على سطر الأوامر. على سبيل المثال، يُمكنك إنشاء دليل جديد من البرنامج النصي باستخدام الأمر mkdir.

  • ابدأ بنفس سطر Shebang كما كان عليه من قبل:
#!/bin/bash
  • يُمكنك مُطالبة المستخدم بإدخال اسم الدليل، باستخدام أمر echo كما في السابق:
echo "Enter new directory name:"
  • استخدم أمر القراءة المُدمج لجلب مدخلات المستخدم. تقوم الوسيطة الفردية بتسمية المتغير الذي سيقوم Shell بتخزين الإدخال فيه:
read newdir
  • عندما تحتاج إلى استخدام القيمة المخزنة في متغير، ضع بادئة اسمه برمز الدولار ($). يُمكنك تمرير محتويات متغير الإدخال كوسيطة إلى الأمر mkdir لإنشاء دليل جديد:
mkdir $newdir
  • عند تشغيل هذا البرنامج النصي، سيطالبك بالإدخال. أدخل اسم دليل صالحًا وسترى أنَّ البرنامج النصي يقوم بإنشائه في دليلك الحالي:

استعراض بعض أمثلة Bash Script لتعلم تقنيات برمجة Linux بسهولة - لينكس

3. إنشاء دليل باستخدام وسيطات سطر الأوامر

كبديل لقراءة المدخلات بشكل تفاعلي، تدعم معظم أوامر Linux الوسيطات. يُمكنك توفير وسيطة عند تشغيل تطبيق للتحكم في سلوكه.

داخل البرنامج النصي، يُمكنك استخدام $1 للإشارة إلى مُتغيِّر خاص يحتوي على قيمة الوسيطة الأولى. $2 سيشير إلى الوسيطة الثانية، وهكذا.

  • قم بإنشاء دليل باستخدام الأمر mkdir من المثال السابق. ومع ذلك، هذه المرة، استخدم المُتغير المُضمَّن $1:
#!/bin/bash
mkdir $1
  • قم بتشغيل البرنامج النصي، هذه المرة بتمرير الاسم الذي اخترته للدليل الجديد كوسيطة:
./arg_dir.sh Test
  • ربما تتساءل عما يحدث إذا قمت بتشغيل البرنامج النصي دون توفير وسيطة على الإطلاق. جربه وانظر. يجب أن تتلقى رسالة خطأ تبدأ “Usage: mkdir”:

استعراض بعض أمثلة Bash Script لتعلم تقنيات برمجة Linux بسهولة - لينكس

بدون أي وسيطات سطر الأوامر، ستكون قيمة $1 فارغة. عندما يستدعي البرنامج النصي mkdir، فلن يمرر وسيطة إليه، وسيعيد الأمر mkdir هذا الخطأ. لتجنب ذلك، يمكنك التحقق من الحالة بنفسك وتقديم خطأ أكثر ودية:

  • كما هو الحال دائمًا، ابدأ بسطر Shebang:
#!/bin/bash
  • قبل استدعاء mkdir، تحقق من وجود وسيطة أولى فارغة (أي لا توجد وسيطة). يمكنك القيام بذلك باستخدام عبارة if الخاصة بـ Bash والتي تقوم بتشغيل التعليمات البرمجية بناءً على شرط:
if ["$1" = ""]; then
  • إذا كانت الوسيطة الأولى فارغة، فاطبع خطأ واخرج من البرنامج النصي:
echo "Please provide a new directory name as the first argument"
    exit
  • تشير الكلمة الأساسية “fi” الغريبة بعض الشيء (“if” المعكوسة) إلى نهاية عبارة if في Bash:
fi
  • يمكن الآن أن يستمر البرنامج النصي الخاص بك كما كان من قبل، للتعامل مع الحالة عند وجود وسيطة:
mkdir $1
  • عند تشغيل هذا الإصدار الجديد من البرنامج النصي، ستتلقى رسالة إذا نسيت تضمين وسيطة:

استعراض بعض أمثلة Bash Script لتعلم تقنيات برمجة Linux بسهولة - لينكس

4. حذف ملف باستخدام دالة Bash

إذا وجدت نفسك تُكرر نفس الكود، فكر في تغليفه في دالة. يُمكنك بعد ذلك استدعاء هذه الدالةمتى شئت.

فيما يلي مثال على دالة تقوم بحذف ملف معين.

  • ابدأ بسطر Shebang:
#!/bin/bash
  • حدد دالة عن طريق كتابة اسمها متبوعًا بأقواس فارغة وأوامر داخل قوسين مُتعرجين:
del_file() {
    echo "deleting $1"
    rm $1
}

يُمكنك بعد ذلك استدعاء الدالة وتمرير اسم الملف المراد حذفه:

del_file test.txt

استعراض بعض أمثلة Bash Script لتعلم تقنيات برمجة Linux بسهولة - لينكس

عند استدعاء دالة، سيتم تعيين $? القيمة مع حالة الخروج لآخر أمر تم تشغيله. حالة الخروج مُفيدة للتحقق من الأخطاء؛ في هذا المثال، يُمكنك اختبار ما إذا كان الأمر rm قد نجح:

if [ $? -ne 0 ]; then
    echo "Sorry, could not delete the file"
fi

استعراض بعض أمثلة Bash Script لتعلم تقنيات برمجة Linux بسهولة - لينكس

5. إنشاء آلة حاسبة أساسية للحسابات الرياضية

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

إليك كود calc.sh:

#!/bin/bash

# Take operands as input
echo "Enter first number: "
read a

echo "Enter second number: "
read b 

# Input type of operation
echo "Enter Arithmetic Operation Choice :"
echo "1. Addition"
echo "2. Subtraction"
echo "3. Multiplication"
echo "4. Division"
read choice 

# calculator operations
case $choice in
  1)
 result=`echo $a + $b | bc`
  ;;

  2)
 result=`echo $a - $b | bc`
 ;;

  3)
 result=`echo $a \* $b | bc`
  ;;

  4)
 result=`echo "scale=2; $a / $b" | bc`
  ;;
esac

echo "Result: $result"

استعراض بعض أمثلة Bash Script لتعلم تقنيات برمجة Linux بسهولة - لينكس

لاحظ استخدام الحالة … esac وهو ما يعادل بيان التبديل من اللغات الأخرى في Bash. فهو يتيح لك اختبار قيمة — في هذه الحالة، متغير الاختيار — مقابل عدة قيم ثابتة وتشغيل التعليمات البرمجية المرتبطة بها.

يستخدم هذا البرنامج النصي الأمر bc لتنفيذ كل عملية حسابية. يُمكنك الإطلاع الآن على إنشاء موقع ويب ثابت بمظهر رائع من Terminal على Linux باستخدام Bashblog.

زر الذهاب إلى الأعلى