تصدير متغير
جزء من قسم الأساسيات في رحلة Terminal على Coddy — الدرس 63 من 82.
عندما تقوم بتعيين متغير مثل MY_NAME="Alice"، فإنه يوجد فقط في جلسة الـ shell الحالية. إذا قمت بتشغيل سكربت أو بدأت برنامجاً آخر، فلن يكون هذا المتغير متاحاً له. هنا يأتي دور export.
يقوم الأمر export بجعل المتغير متاحاً لأي عمليات تابعة (child processes)، مما يعني أن البرامج أو السكربتات التي يتم تشغيلها من الصدفة (shell) الحالية يمكنها الوصول إليه:
export MY_NAME="Alice"يمكنك أيضًا تصدير متغير موجود:
MY_NAME="Alice"
export MY_NAMEكلا النهجين يحققان نفس النتيجة. يصبح المتغير جزءاً من البيئة التي يتم تمريرها إلى أي أمر تقوم بتشغيله بعد ذلك.
لرؤية الفرق، جرب تشغيل نص برمجي يحاول استخدام $MY_NAME.
بدون export، لا يرى السكربت شيئاً. وباستخدام export، يمكن للسكربت الوصول إلى القيمة.
هذا هو السبب في أن متغيرات النظام مثل PATH و HOME يتم تصديرها بشكل افتراضي. يجب أن تكون متاحة لكل برنامج تقوم بتشغيله.
يمكنك التحقق من تصدير متغير من خلال التأكد مما إذا كان يظهر في مخرجات env:
env | grep MY_NAMEتظل المتغيرات المصدرة تختفي عند إغلاق الطرفية. يغطي الدرس القادم كيفية جعل المتغيرات تستمر عبر الجلسات.
التحدي
سهلقم بتصدير متغير يسمى PROJECT بالقيمة terminal-course، ثم تحقق من تصديره عن طريق تصفية مخرجات env لإظهار متغيرك الجديد فقط.
يمكنك القيام بذلك في سطر واحد باستخدام export لتعيين وتصدير المتغير في آن واحد، ثم تمرير env عبر grep للعثور عليه.
يجب أن تكون مخرجاتك:
PROJECT=terminal-courseتلميح: قم أولاً بتشغيل
export PROJECT="terminal-course"، ثم استخدمenv | grep PROJECTللتحقق من ظهوره في البيئة.
ورقة مرجعية
يقوم الأمر export بجعل المتغير متاحاً للعمليات الفرعية (البرامج أو السكربتات التي يتم تشغيلها من الصدفة (shell) الحالية):
export MY_NAME="Alice"يمكنك أيضاً تصدير متغير موجود بالفعل:
MY_NAME="Alice"
export MY_NAMEبدون export، توجد المتغيرات فقط في الصدفة (shell) الحالية ولا يمكن للسكربتات أو البرامج التي تقوم بتشغيلها الوصول إليها.
للتحقق من تصدير متغير ما، تحقق مما إذا كان يظهر في مخرجات env:
env | grep MY_NAMEتختفي المتغيرات المصدرة عند إغلاق الطرفية (terminal).
جرّب بنفسك
يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس الأساسيات
2التنقل
عرض مسار المجلد الحاليعرض الملفاتتغيير المجلدالمسارات المطلقة مقابل المسارات النسبيةمجلد المنزل ومجلد الجذرخلاصة - حدد مسارك8إعادة التوجيه
المخرجات القياسيةالكتابة فوق ملفالإضافة إلى ملفالمدخلات القياسيةالخطأ القياسيمراجعة - بناء سجل الأحداث11الأذونات
فهم الأذوناتقراءة الأذوناتChmod باستخدام الأرقامChmod باستخدام الرموزملكية الملفاتملخص - إحكام الحماية14مشروع سكربت النسخ الاحتياطي
نظرة عامة على المشروعالحصول على مسار المصدر