--- title: Writing a Bash Script localeTitle: كتابة سيناريو باش --- # كتابة سيناريو باش من خلال كتابة الأوامر على سطر أوامر Linux ، يمكنك إعطاء تعليمات الخادم لإنجاز بعض المهام البسيطة. كالجحيم البرنامج النصي هو وسيلة لوضع مجموعة من التعليمات لجعل هذا أسهل. تصبح نصوص Shell أكثر قوة عندما يمكنك إضافة المنطق كما `if` و `while` تتحكم تلقائيًا في كيفية تصرفهم مع تغير الظروف. ## ما هو باش؟ Bash هو اسم مترجم سطر الأوامر ، وهو برنامج يجعل من المنطقي أوامر Linux التي تدخلها في الأمر موجه ، أو في البرنامج النصي الخاص بك. ## ماذا يوجد في البرنامج النصي؟ البرنامج النصي هو مجرد ملف. يتكون النص الأساسي من سطر تمهيدي يخبر الخادم بما يجب عليه ، والآخر أو المزيد من الإرشادات للتنفيذ. إليك مثال على ذلك: `#!/bin/bash echo "Hi. I'm your new favorite bash script." ` السطر الأول له معنى خاص ، والذي سنناقشه أدناه. السطر الثاني هو مجرد أمر لينكس ، واحد يمكن أن تكتبه خارج على سطر الأوامر. ## ما هو التعليق؟ التعليقات هي نص تضيفه إلى النص البرمجي الذي تنوي أن تتجاهله bash. تبدأ التعليقات بعلامة الجنيه ، وتكون مفيدة لـ شرح التعليمة البرمجية حتى تتمكن أنت والمستخدمين الآخرين من فهمها. لإضافة تعليق ، اكتب الرمز `#` ، متبوعًا بأي نص هذا مفيد لك. باش سوف يتجاهل `#` وكل شيء بعده. **ملاحظة:** السطر الأول من النص البرمجي ليس تعليقًا. يكون هذا السطر دائمًا أولاً ، ويبدأ دائمًا بـ `#!` ولديه خاصة معنى باش. هنا النصي من قبل ، وعلق: `#!/bin/bash # Designates the path to the bash program. Must start with '#!' (but isn't a comment). echo "Hi. I'm your new favorite bash script." # 'echo' is a program that sends a string to the screen. ` ## تنفيذ البرنامج النصي يمكنك فتح محرر نصوص ، ولصق رمز المثال هذا وحفظ الملف ، ولديك برنامج نصي. البرامج النصية هي تقليديا اسمه في النهاية بـ ".sh" ، لذلك قد تحفظ هذا الرمز على أنه myscript.sh. لن يتم تنفيذ النص البرمجي حتى نقوم بعمل أمرين: **أولا ، جعلها قابلة للتنفيذ.** (سوف يتعين علينا القيام بذلك مرة واحدة فقط.) يعتمد Linux على نطاق واسع على أذونات الملفات. إنهم يحددون الكثير عن سلوك خادمك. هناك الكثير لتعرفه أذونات ، ولكن في الوقت الحالي لا نحتاج إلا إلى معرفة ذلك: لا يمكنك تشغيل البرنامج النصي حتى تعطي نفسك أذونات التنفيذ. إلى افعل ذلك ، اكتب: `chmod +x my script.sh` **ثانيا ، قم بتشغيله.** نقوم بتنفيذ البرنامج النصي من سطر الأوامر تمامًا مثل أي أمر آخر مثل `ls` أو `date` . النص الاسم هو الأمر ، ويجب أن تسبقه بـ "./" عند تسميته: `./myscript.sh # Outputs "Hi. I'm your new favorite bash script." (This part is a comment!)` ## الشرطية في بعض الأحيان ترغب في أن يقوم برنامجك النصي بعمل شيء ما فقط إذا كان هناك شيء آخر صحيح. على سبيل المثال ، طباعة رسالة فقط إذا كانت القيمة تحت حد معين. في ما يلي مثال لاستخدامه في `if` القيام بذلك: `#!/bin/bash count=1 # Create a variable named count and set it to 1 if [[ $count -lt 11 ]]; then # This is an if block (or conditional). Test to see if $count is 10 or less. If it is, execute the instructions inside the block. echo "$count is 10 or less" # This will print, because count = 1. fi # Every if ends with fi ` وبالمثل ، يمكننا ترتيب البرنامج النصي بحيث ينفذ تعليمات فقط بينما يكون شيء ما صحيحًا. سنقوم بتغيير الكود بحيث قيمة التغيرات المتغيرة العد: `#!/bin/bash count=1 # Create a variable named count and set it to 1 while [[ $count -lt 11 ]]; do # This is an if block (or conditional). Test to see if $count is 10 or less. If it is, execute the instructions inside the block. echo "$count is 10 or less" # This will print as long as count <= 10. count=$((count+1)) # Increment count done # Every while ends with done ` سيظهر ناتج هذا الإصدار من myscript.sh بالشكل التالي: `"1 is 10 or less" "2 is 10 or less" "3 is 10 or less" "4 is 10 or less" "5 is 10 or less" "6 is 10 or less" "7 is 10 or less" "8 is 10 or less" "9 is 10 or less" "10 is 10 or less" ` ## مخطوطات العالم الحقيقي هذه الأمثلة ليست مفيدة بشكل كبير ، ولكن المبادئ هي. باستخدام `while` ، `if` ، وأي أمر قد اكتب خلاف ذلك يدوياً ، يمكنك إنشاء برامج نصية تقوم بعمل قيّم.