![]() |
بينما نستخدمه بشكل عام لعمليات الإدارة أو إدارة الملفات ، فإن ملف راحة de لينكس يوسع وظائفه إلى أبعد من هذا الغرض ، مما يسمح لنا بالبرمجة مخطوطات لا يُقصد بهذا الدليل أن يكون مرجعًا كاملاً لبرمجة Bash ، بل هو مقدمة للأوامر والبنى الأساسية ، والتي ستسمح لنا بتوسيع قوة نظامنا جنو / لينكس. |
ما هو "النص"؟
في الأساس نقول إنه ملف يحتوي على كود مكتوب بلغة برمجة معينة يستخدمها النظام لمهمة معينة. لا يحتاج إلى إدخال خارجي أو واجهة رسومية ، ولكنه لا يحتاج إلى إخراج البيانات المعالجة (حتى لو لم يراه المستخدم).
يتم تحديد اللغة التي يستخدمها Bash بواسطة مترجمها الخاص وتجمع بين بناء جملة Shells الأخرى ، مثل Korn Shell (ksh) أو C Shell (csh). يمكن أيضًا استخدام العديد من الأوامر التي تُستخدم عادةً في وحدة التحكم في البرامج النصية ، باستثناء تلك التي تتعلق بشكل صارم بتوزيع معين.
هيكل النص
للبدء ، يجب أن يكون لدينا محرر نصوص ورغبة في البرمجة. يمكن تنفيذ (أو تفسير) الملفات التي نحفظها بامتداد .sh بواسطة وحدة التحكم ، طالما أن السطر الأول هو التالي:
#! / بن / باش
هذا يخبر النظام لاستخدام وحدة التحكم لتشغيل الملف. أيضًا ، يسمح لك الحرف # بكتابة التعليقات. لإنشاء أبسط مثال ، نضيف سطرًا آخر ، كما هو موضح في الصورة التالية:
يعرض الأمر echo رسالة على الشاشة ، في هذه الحالة هي "Hello world!" إذا قمنا بحفظها وتنفيذها باستخدام وحدة التحكم ، فسنرى النتيجة.
الأوامر الأساسية
الأوامر التالية شائعة ومفيدة جدًا لأي نوع من البرامج. نوضح أن هناك الكثير ، ولكن في الوقت الحالي سنغطي ما يلي.
الأسماء المستعارة: تسمح باستبدال سلسلة من الكلمات بسلسلة أقصر ، مما يسمح بتقليل الكود.
#create اسمًا مستعارًا يسمى per مع عنوان الاسم المستعار لمجلد #Downloads per = '/ home / user / Downloads' # في كل مرة نرغب في استخدامها ، يتعين علينا فقط استدعاء # الكلمة الجديدة لكل # لتدمير هذا الاسم المستعار ، نستخدم unalias unalias في
كسر: يسمح لك بالخروج فورًا من حلقة من أجل ، بينما ، حتى أو تحديد حلقة (سنقوم بدراسة الحلقات بالتفصيل لاحقًا)
#Create a loop الذي سيخصص الأرقام من 1 إلى 5 # لكل "دورة في الحلقة" للعداد في 1 2 3 4 5 do # نطبع القيمة الحالية للمتغير #counter ، والذي يتم تحليله بواسطة الحرف $ echo " $ counter ”# إذا كانت قيمة العداد تساوي 3 إذا [$ counter –eq 3] فإن # الفاصل يخرج من الحلقة لكسر فاي تم
تابع - مشابه للكسر ، إلا أنه يتجاهل الحلقة الحالية وينتقل إلى الحلقة التالية.
# أنشئ حلقة ستخصص الأرقام من 1 إلى 5 # لكل "منعطف في الحلقة" للعداد في 1 2 3 4 5 do # إذا كانت قيمة العداد تساوي 3 إذا [$ counter –eq 3] ثم # استمر يمنع تحليل بقية الدورة الحالية من خلال القفز إلى الجولة التالية ، أي لن تتم طباعة # القيمة 3. استمر في تنفيذ صدى "$ counter"
أعلن: أعلن عن المتغيرات وعيّن قيمًا لها ، تمامًا مثل التنضيد (تعمل بنفس الطريقة). يمكننا دمجها مع بعض الخيارات: -i أعلن الأعداد الصحيحة ؛ -r لمتغيرات القراءة فقط ، التي لا يمكن تغيير قيمتها ؛ - أ للمصفوفات أو "المصفوفات" ؛ -f للوظائف ؛ -x للمتغيرات التي يمكن "تصديرها" خارج بيئة البرنامج النصي نفسه.
أعلن –i num = 12 أعلن –x pi = 3.14
help: تظهر المساعدة لأمر معين.
الوظائف: توضح العمليات الجارية.
#With –c نعرض اسم الأوامر ، مع –p # pid (معرف العملية) لكل عملية. وظائف -cp
اسمحوا: تقييم تعبير حسابي
دع a = 11 دع a = a + 5 # أخيرًا نطبع قيمة a وهي 16 echo "11 + 5 = $ a"
محلي: إنشاء متغيرات محلية ، ويفضل استخدامها في وظائف البرنامج النصي نفسه لتجنب الأخطاء. يمكنك استخدام نفس وظائف أمر التصريح.
local v1 = "هذا متغير محلي"
تسجيل الخروج: يسمح بتسجيل الخروج من Shell تمامًا ؛ مفيد في الحالات التي نعمل فيها مع أكثر من نافذة صدفة ، حيث سيسمح أمر الخروج فقط بإنهاء نافذة واحدة في كل مرة.
printf: يسمح لك بطباعة البيانات وتنسيقها. لديها العديد من الخيارات ، لذلك سنذكر القليل منها.
#٪ f يطبع كرقم عائم ، n لـ # سطر جديد printf "٪ fn" 5 5.000000 # & d يسمح بتمرير الأرقام العشرية كوسيطات printf "هناك٪ d طلبات بقيمة٪ d بالدولار.n" 20 هناك 500 طلبًا بقيمة 20 دولار.
القراءة: اقرأ سطرًا من الإدخال القياسي (الوحدة النمطية المستخدمة في تحميل البيانات عبر لوحة المفاتيح على سبيل المثال). يمكننا تمرير خيارات مثل: -t لإعطاء وقت محدد للقراءة ؛ -a بحيث يتم تعيين كل كلمة لموضع في مصفوفة aname ؛ -د استخدام محدد يكتب في نهاية السطر ؛ من بين أمور أخرى.
صدى "أدخل اسمك واضغط على ENTER" # اقرأ اسم المتغير اقرأ الاسم صدى "اسمك هو $ name"
النوع: يصف الأمر وسلوكه. قد يكون من المفيد معرفة تعريفات البيانات لكل أمر.
يخبرنا type –a '[' #type أن [أمر مدمج في Shell [عبارة عن أمر Shell مدمج # -a يسمح بإيجاد المجلدات التي تحتوي على # ملف تنفيذي مع إدخال الاسم. [is / usr / bin / [
ulimit: يحد من الوصول إلى موارد نظام معينة واستخدامها على العمليات ، وهو مثالي للبرامج التي تسمح بالتغييرات الإدارية أو الموجهة لأنواع مختلفة من المستخدمين. عند تعيين حد ، نكتب رقمًا يمثل كيلو بايتات الحد.
# نحن نرى حدودنا الحالية ulimit –a # -f يسمح بتحديد المستخدمين لعدم القدرة على # إنشاء ملفات أكبر من 512000 كيلو بايت (500 # ميجابايت) ulimit –f 512000 # -v يحد من الذاكرة الظاهرية للعملية. ulimit –v 512000
انتظر: انتظر حتى يتم تنفيذ عملية أو مهمة معينة للمتابعة.
# البرنامج النصي ينتظر تنفيذ عملية pid # 2585
انتظر 2585
يتم تمثيل الأوامر المفيدة الأخرى التي يمكننا إضافتها إلى البرامج النصية برموز.
!!: قم بتشغيل الأمر الأخير مرة أخرى
! wer: ينفذ الأمر الأخير الذي بدأ بالتعبير "wer".
'==' و '! =' و '>' و '<' و '> =' و '<=': العوامل العلائقية.
|: يستخدم عامل التشغيل OR بشكل عام لضم تعبيرين عاديين.
: أمر escape الذي يسمح لك بتنسيق التعبيرات. على سبيل المثال: a لتنبيه صوتي ، n لـ newline ، b لـ backspace ، إلخ.
عظيم! على أي حال ، هناك تعليقان: علامة Ubuntu نصف كثيرة جدًا ، لأنها تعمم شيئًا عامًا. وإذا استمرت هذه البرامج التعليمية في التقدم ، فسيكون من الجيد أن ترتبط ببعضها البعض….
بخلاف ذلك ، هذه الخطوة ممتعة!
مساهمة جيدة! عظيم!
فقط مراجع مفقودة لأولئك الذين يريدون الحصول على المزيد في هذه المسألة. بعض الأشياء الجيدة رغم أنه ليس من السهل العثور عليها في بلادنا
- دليل عملي لأوامر Linux والمحررين وبرمجة Shell ، مارك سوبيل (الفصل 8)
- Pro Bash Programming ، Chris FA Johnson (على الرغم من أن هذا مخصص لأولئك الذين لديهم مراجع أخرى أو القليل من المعرفة).
مقالة جيدة.
موعد جيد! شكرا!
: @ حذفت وظيفة "تسجيل الدخول كـ" تعليقي السابق ، لذا سألخصها أكثر:
وظائف -cp
باش: الوظائف: -ج: خيار غير صالح
jobs: Usage: jobs [-lnprs] [jobspec…] أو الأمر jobs -x [args]
-eq -gt -lt لا أقبل متغيرات الفاصلة العشرية ، بين المنتدى والمنتدى اكتشفت أن bc حليف جيد:
إذا كان [`صدى 9.999> 10 | bc` -eq 1] ؛ ثم
صدى "9.999 أكبر من 10 ، تأكد من أن المعالج لا يزال يعمل"
آخر
صدى «9.999 ليس أكبر من 10 ، كل شيء يعمل بشكل طبيعي
fi
يلخص هذا المنشور بشكل جيد جميع العموميات الخاصة بـ bash scripting:
http://www.aboutlinux.info/2005/10/10-seconds-guide-to-bash-shell.html
ستجد في هذا الموقع العديد من الأسئلة والأجوبة حول خصائص باش:
http://unix.stackexchange.com/questions/tagged/bash
فيما يلي بعض النصوص الرائعة حقًا ، ويمكنك تعلمها من خلال قراءة نصوص الآخرين:
http://snipplr.com/search.php?q=bash&btnsearch=go
أنت محق في ما تقوله باستثناء باش. كل نظام رأيته به bash in / bin / bash.
ولكن بالنسبة للبيثون والبيرل والياقوت وما إلى ذلك ، فلا بأس من استخدام ذلك. أنا افعل
من قبيل الصدفة ، في الكلية نستخدم البرمجة النصية bash ، لذا فإن البيانات 10 ، جيدة جدًا!
نسخة pdf للتحميل ستكون جيدة !! 😀
موقع جيد جدا. أخيرا وجدت شيئا مفيدا. شكرا.