Menu
Coddy logo textTech
flag Ar iconالعربيةdown icon

تصدير متغير

جزء من قسم الأساسيات في رحلة 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

تظل المتغيرات المصدرة تختفي عند إغلاق الطرفية. يغطي الدرس القادم كيفية جعل المتغيرات تستمر عبر الجلسات.

challenge icon

التحدي

سهل

قم بتصدير متغير يسمى 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).

جرّب بنفسك

الطرفية
quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

جميع دروس الأساسيات