مراجعة - مخمن الأرقام
جزء من قسم الأساسيات في رحلة Terminal على Coddy. الدرس 73 من 82.
التحدي
سهلأنشئ برنامجًا نصيًا للصدفة باسم guesser.sh يحاكي لعبة تخمين رقم باستخدام تسلسل ثابت من التخمينات.
يجب أن يقوم البرنامج النصي بما يلي:
- البدء بسطر shebang (
#!/bin/bash) - تعيين متغير باسم
secretبالقيمة5 - تعيين متغير باسم
guessبالقيمة الابتدائية0 - استخدام حلقة while تستمر ما دام
guessلا يساويsecret - زيادة قيمة
guessبمقدار 1 داخل الحلقة - استخدام عبارة if للتحقق من التخمين:
- إذا كان
guessأصغر منsecret، فاطبع:Guess [guess]: Too low! - إذا كان
guessيساويsecret، فاطبع:Guess [guess]: Correct!
- إذا كان
اجعل البرنامج النصي قابلًا للتنفيذ وشغّله. يجب أن يكون الناتج:
Guess 1: Too low!
Guess 2: Too low!
Guess 3: Too low!
Guess 4: Too low!
Guess 5: Correct!تنجح كتابة برنامج نصي متعدد الأسطر باستخدام
echoواحد لكل سطر، ولكن توجد طريقة أقصر: إذ يمرر مستند here كل شيء حتى الكلمة الختامية مباشرةً إلى الملف.cat > script.sh << 'EOF' #!/bin/bash echo "hello" EOFتمنع علامات الاقتباس حول
'EOF'توسيع$variablesأثناء كتابة الملف، وهذا هو المطلوب عندما يستخدم البرنامج النصي هذه المتغيرات بنفسه.
تلميح: استخدم
-neبمعنى "لا يساوي" في شرط while، و-ltبمعنى "أصغر من" في عبارة if، و-eqبمعنى "يساوي". زد قيمة التخمين في بداية كل تكرار للحلقة باستخدامguess=$((guess + 1)).
جرّب بنفسك
جميع دروس الأساسيات
7محتوى الملف
Head و Tailعد الكلمات (Word Count)أمر Sortأمر Uniqueأساسيات GrepGrep مع الخياراتملخص - محقق النصوص13أساسيات برمجة Shell
ما هو Shell Script؟إنشاء وتشغيل Scriptالمتغيرات في الـ Scriptsمدخلات المستخدم في الـ Scriptsجملة If الشرطيةحلقة For التكراريةحلقة While التكراريةمراجعة - مخمن الأرقام2التنقل
عرض مسار المجلد الحاليعرض الملفاتتغيير المجلدالمسارات المطلقة مقابل المسارات النسبيةمجلد المنزل ومجلد الجذرخلاصة - حدد مسارك8إعادة التوجيه
المخرجات القياسيةالكتابة فوق ملفالإضافة إلى ملفالمدخلات القياسيةالخطأ القياسيمراجعة - بناء سجل الأحداث11الأذونات
فهم الأذوناتقراءة الأذوناتChmod باستخدام الأرقامChmod باستخدام الرموزملكية الملفاتملخص - إحكام الحماية14مشروع سكربت النسخ الاحتياطي
نظرة عامة على المشروعالحصول على مسار المصدرتدرّب بنفسك: Playground لـ Terminal