OnWorks Linux و Windows Online WorkStations

الشعار

استضافة مجانية على الإنترنت لمحطات العمل

<السابق | المحتويات | التالي>

تعيين القيم للمتغيرات والثوابت

هنا تبدأ معرفتنا بالتوسع تؤتي ثمارها. كما رأينا، تُعطى قيم المتغيرات بهذه الطريقة:

متغير=قيمنا

أين متغير هو اسم المتغير و قيمنا هي سلسلة نصية. على عكس بعض لغات البرمجة الأخرى، لا تهتم واجهة برمجة التطبيقات بنوع البيانات المُخصصة للمتغير؛ بل تُعاملها جميعًا كسلاسل نصية. يمكنك إجبار واجهة برمجة التطبيقات على تقييد التعيين بالأعداد الصحيحة باستخدام أعلن الأمر مع -i خيار، ولكن، كما هو الحال مع تعيين المتغيرات للقراءة فقط، نادرًا ما يتم القيام بذلك.

لاحظ أنه في التعيين، يجب ألا تكون هناك مسافات بين اسم المتغير وعلامة التساوي والقيمة. مما تتكون القيمة؟ أي شيء يمكن توسيعه إلى سلسلة نصية:


أ = ز

ب = "سلسلة"

c="سلسلة و $b"


د=$(ls -l foo.txt) هـ=$((5 * 7)) ف="\t\ta سلسلة\n"

# قم بتعيين السلسلة "z" إلى المتغير a.

# يجب أن تكون المسافات المضمنة بين علامتي الاقتباس.

# يمكن توسيعات أخرى مثل المتغيرات

# تم التوسع في المهمة.

# نتائج الأمر.

# التوسع الحسابي.

# تسلسلات الهروب مثل علامات التبويب والأسطر الجديدة.

أ = ز

ب = "سلسلة"

c="سلسلة و $b"


د=$(ls -l foo.txt) هـ=$((5 * 7)) ف="\t\ta سلسلة\n"


صورة

من الممكن إجراء تعيينات متغيرات متعددة على سطر واحد:



أ=5 ب=سلسلة

أ=5 ب=سلسلة


أثناء التوسع، يمكن إحاطة أسماء المتغيرات بأقواس متعرجة اختيارية "{}". هذا مفيد في الحالات التي يصبح فيها اسم المتغير غامضًا بسبب غموضه المحيط.


النص. هنا، نحاول تغيير اسم الملف من ملفي إلى ملفي 1، باستخدام المتغير:



[me @ linuxbox ~] $ اسم الملف = "ملفي" [me @ linuxbox ~] $ المس $filename [me @ linuxbox ~] $ mv $filename $filename1

mv: ملف الوجهة مفقود بعد `myfile` حاول `mv --help` للحصول على مزيد من المعلومات.

[me @ linuxbox ~] $ اسم الملف = "ملفي" [me @ linuxbox ~] $ المس $filename [me @ linuxbox ~] $ mv $filename $filename1

mv: ملف الوجهة مفقود بعد `myfile` حاول `mv --help` للحصول على مزيد من المعلومات.


تفشل هذه المحاولة لأن shell يفسر الحجة الثانية لـ mv كمتغير جديد (فارغ). يمكن حل المشكلة بهذه الطريقة:



[me @ linuxbox ~] $ mv $filename ${filename}1

[me @ linuxbox ~] $ mv $filename ${filename}1


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

سنستغل هذه الفرصة لإضافة بعض البيانات إلى تقريرنا، أي تاريخ ووقت إنشاء التقرير واسم المستخدم الخاص بالمنشئ:



#! / بن / باش

# برنامج لإخراج صفحة معلومات النظام TITLE="تقرير معلومات النظام لـ $HOSTNAME"

الوقت الحالي=(التاريخ +"%x %r %Z")

TIMESTAMP = "تم توليده $ CURRENT_TIME ، بواسطة $ USER"


صدى صوت "

العنوان $

العنوان $

TIMESTAMP دولار

"

#! / بن / باش

# برنامج لإخراج صفحة معلومات النظام TITLE="تقرير معلومات النظام لـ $HOSTNAME"

الوقت الحالي=(التاريخ +"%x %r %Z")

TIMESTAMP = "تم توليده $ CURRENT_TIME ، بواسطة $ USER"


صدى صوت "

العنوان $

العنوان $

TIMESTAMP دولار

"


أفضل الحوسبة السحابية لنظام التشغيل في OnWorks: