غالبًا ما يُشار إلى المتغير على أنه مربع يحتوي على الاسم والمحتويات. أمر بسيط، على سبيل المثال، 'echo Hello $Var_Name' سيطبع 'Hello...قيمة المتغير كما هو محدد'. لن يقوم Bash بطباعة أي شيء إذا كان الصندوق فارغًا أو لم يتم إنشاؤه. ولهذا السبب من المهم التأكد من تعيين المتغير بشكل صحيح أم لا أثناء إنشاء أي برنامج نصي bash.
يمكن تصنيف المتغيرات إلى قسمين:
تُعرف المتغيرات التي تم إنشاؤها أو تهيئتها بشكل صحيح باسم المتغيرات المحددة. قد يكون لها قيمة صفر أو سلسلة فارغة.
تُعرف المتغيرات التي لم يتم إنشاؤها أو تهيئتها مطلقًا بالمتغيرات غير المحددة.
لتأكيد ما إذا كان قد تم تعيين متغير أم لا في Bash Scripting، يمكننا استخدامه -v فار أو -z ${var} الخيارات كتعبير مع مزيج من الأمر الشرطي 'if'.
بناء الجملة
فيما يلي صيغ التعبير المنطقي التي يمكن استخدامها للتحقق من تعيين المتغير:
[[ -v Variable_Name ]] [[ -z Variable_Name ]]
يُرجع التعبير المنطقي 'صحيح' إذا تم تعيين المتغير و'خطأ' إذا لم يتم تعيين المتغير.
جافا متساوية
فيما يلي الأمثلة للتحقق مما إذا تم تعيين المتغير أم لا:
باستخدام الخيار -v
#!/bin/bash #Script to check whether a variable is set or not using -v option A=100 #A: variable is set. if [[ -v A ]]; then echo 'Variable having name 'A' is already set.' else echo 'Variable having name 'A' is not set.' fi #B: variable is not set if [[ -v B ]]; then echo 'Variable having name 'B' is already set.' else echo 'Variable having name 'B' is not set.' fi
انتاج |
هنا، يتم تعريف المتغير 'A' وتعيين قيمة 100، وبالتالي يعتبر 'متغير المجموعة'. بالنسبة للمتغير 'B'، لم نحدد أو نخصص أي قيمة. ونتيجة لذلك، لا يعتبر المتغير 'B' بمثابة 'متغير محدد'.
باستخدام الخيار -z
#!/bin/bash #Script to check whether a variable is set or not using -z option A=100 #A: variable is set. if [[ -z ${A} ]]; then echo 'Variable having name 'A' is not set.' else echo 'Variable having name 'A' is already set.' fi #B: variable is not set if [[ -z ${B} ]]; then echo 'Variable having name 'B' is not set.' else echo 'Variable having name 'B' is already set.' fi
انتاج |
ملحوظة:هناك فرق بين متغير غير محدد ومتغير بقيمة فارغة.
تحقق من المثال التالي الذي يوضح أن المتغير ذو القيمة الخالية يمكن أن يكون متغيرًا محددًا.
مثال
VAR='' #VAR is set if [ -z ${VAR+x} ]; then echo ''VAR' is unset'; else echo ''VAR' is set, its content is '$VAR''; fi #Var is not set if [ -z ${Var+x} ]; then echo ''Var' is unset'; else echo ''Var' is set, its content is '$Var''; fi
انتاج |
هذه هي الطرق شائعة الاستخدام التي يمكن استخدامها للتحقق مما إذا تم تعيين متغير أم لا.
جدولة جولة روبن