دليل المبتدئين إلى BASH - الجزء 1 - مرحبا العالم

هناك الكثير من الأدلة على الإنترنت التي توضح كيفية إنشاء برامج نصية من Shell باستخدام BASH ويهدف هذا الدليل إلى إعطاء تدور مختلف قليلاً لأنه مكتوب من قبل شخص لديه خبرة قليلة جدًا في استخدام برامج shell النصية.

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

في الوقت الذي تكون فيه تجربة البرمجة النصية الخاصة بـ LINUX / UNIX محدودة ، فأنا مطور برمجيات من خلال التجارة ، وأنا أضع يدك في لغات البرمجة مثل PERL و PHP و VBScript.

الهدف من هذا الدليل هو أن تتعلم كما أتعلم وأية معلومات أتناولها وأرسلها لك.

ابدء

من الواضح أن هناك الكثير من النظريات التي يمكن أن أقدمها لك مباشرة مثل وصف الأنواع المختلفة من الصدفة ومزايا استخدام BASH عبر KSH و CSH.

معظم الناس عندما يتعلمون شيئًا جديدًا يرغبون في القفز والبدء ببعض الدروس العملية أولاً ومع أخذ ذلك في الاعتبار لن أتحملكم التوافه الذي لا يهم في الوقت الحالي.

كل ما تحتاجه لإتباع هذا الدليل هو محرر نصوص ونقطة تشغيل تعمل على BASH (الغلاف الافتراضي لمعظم توزيعات لينكس).

المحررين النص

وقد اقترحت أدلة أخرى قمت بقراءتها أنك تحتاج إلى محرر نصوص يحتوي على ترميز ألوان للأوامر ويكون المحررون الموصى بهم إما VIM أو EMACS .

يعد ترميز الألوان أمرًا رائعًا لأنه يسلط الضوء على الأوامر أثناء كتابتها ، ولكن بالنسبة للمبتدئين المطلقين ، يمكنك قضاء الأسابيع القليلة الأولى في تعلم VIM و EMACS دون كتابة سطر واحد من الشفرة.

أفضّل ، من بين الاثنين ، نظام EMACS لكنني أفضّل استخدام محرر بسيط مثل nano أو gedit أو leafpad.

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

لأغراض هذا الدليل ، سوف أستخدم nano حيث يتم تثبيته أصلاً على غالبية توزيعات Linux ومن المحتمل بالتالي أنه سيكون بإمكانك الوصول إليه.

فتح نافذة طرفية

إذا كنت تستخدم توزيعة Linux مع سطح مكتب رسومية مثل Linux Mint أو Ubuntu ، فيمكنك فتح نافذة طرفية بالضغط على CTRL + ALT + T.

أين تضع مخطوطاتك

لأغراض هذا البرنامج التعليمي ، يمكنك وضع البرامج النصية في مجلد أسفل مجلد المنزل.

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

مؤتمر نزع السلاح ~

يرمز الأمر cd إلى دليل التغيير وتكون علامة التلدة (~) اختصارًا للمجلد الرئيسي.

يمكنك التحقق من أنك في المكان الصحيح عن طريق كتابة الأمر التالي:

الأشخاص ذوي الإعاقة

سيخبرك الأمر pwd بدليل العمل الحالي (حيث توجد في شجرة الدليل). في حالتي عاد / الوطن / غاري.

الآن من الواضح أنك لن ترغب في وضع البرامج النصية الخاصة بك مباشرة في المجلد الرئيسي ، لذلك قم بإنشاء مجلد يسمى scripts عن طريق كتابة الأمر التالي.

مخطوطات mkdir

التغيير إلى مجلد البرامج النصية الجديد عن طريق كتابة الأمر التالي:

مخطوطات cd

السيناريو الأول الخاص بك

ومن المعتاد عند تعلم كيفية برمجة لجعل البرنامج الأول ببساطة إخراج الكلمات "مرحبا العالم".

من داخل مجلد البرامج النصية الخاص بك ، أدخل الأمر التالي:

نانو helloworld.sh

الآن أدخل الرمز التالي في نافذة nano.

bash / bin / bash echo "hello world"

اضغط على CTRL + O لحفظ الملف و CTRL + X للخروج من nano.

يتكون النص نفسه على النحو التالي:

يجب تضمين #! / bin / bash في الجزء العلوي من جميع النصوص البرمجية التي تكتبها حيث تسمح للمفسرين ونظام التشغيل بمعرفة كيفية التعامل مع الملف. ببساطة تذكر أن تضعها في ونسيان لماذا تفعل ذلك.

يحتوي السطر الثاني على أمر واحد يسمى الصدى الذي يخرج النص الذي يتبعه مباشرة.

لاحظ أنه إذا كنت تريد عرض أكثر من كلمة واحدة ، فأنت بحاجة إلى استخدام علامات اقتباس مزدوجة (") حول الكلمات.

يمكنك الآن تشغيل البرنامج النصي بكتابة الأمر التالي:

sh helloworld.sh

يجب أن تظهر الكلمات "hello world".

طريقة أخرى لتشغيل البرامج النصية كالتالي:

./helloworld.sh

تتمثل الاحتمالات في أنه في حالة تشغيل هذا الأمر في المحطة على الفور ستحصل على خطأ في الأذونات.

لمنح الأذونات لتشغيل البرنامج النصي بهذه الطريقة ، اكتب ما يلي:

sudo chmod + x helloworld.sh

ما الذي حدث بالفعل هناك؟ لماذا كنت قادرا على تشغيل sh shellow.sh دون تغيير الأذونات ولكن تشغيل. / helloworld.sh تسبب مشكلة؟

تحمّل الطريقة الأولى المترجم الشفهي الذي يأخذ helloworld.sh كمدخل ويخرج ما يجب فعله به. يملك مترجم باش بالفعل أذونات للتشغيل ويحتاج فقط إلى تشغيل الأوامر في البرنامج النصي.

تسمح الطريقة الثانية لنظام التشغيل بالعمل على ما يجب فعله بالبرنامج النصي ، وبالتالي يتطلب بتة قابلة للتنفيذ من أجل التنفيذ.

كان البرنامج النصي أعلاه موافق ولكن ماذا يحدث إذا كنت ترغب في عرض علامات الاقتباس؟

هناك طرق مختلفة لتحقيق ذلك. على سبيل المثال ، يمكنك وضع شرطة مائلة عكسية قبل علامات الاقتباس كما يلي:

صدى \ "مرحبا العالم \"

هذا سينتج الناتج "مرحبا العالم".

انتظر دقيقة رغم ذلك ، ماذا لو كنت تريد عرض \ "مرحبًا بالعالم \"؟

حسنا يمكنك الهروب من الشخصيات الهروب كذلك

echo \\ "\" hello world \\ "\"

هذا سينتج الإخراج \ "مرحبًا بالعالم \".

الآن أنا أعرف ما تفكر به. لكنني أرغب في عرض \\ "\" مرحبًا بالعالم "\"

يمكن استخدام صدى مع كل هذه الشخصيات الهروب الحصول على سخيفة جدا. هناك أمر بديل يمكنك استخدام printf.

فمثلا:

printf '٪ s \ n' '\\ "\" hello world \\ "\"'

لاحظ أن النص الذي نرغب في عرضه يوجد بين علامات الاقتباس الفردية. يخرج أمر printf نصًا من النص البرمجي. يعني٪ s أنه سيعرض سلسلة ، \ n يخرج سطرًا جديدًا.

ملخص

لم نقم بتغطية مساحة كبيرة في الجزء الأول ولكن نأمل أن يكون لديك أول سيناريو خاص بك.

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