• 0

كيف أعرف ما إذا كان متغير في Bash فارغا؟

ماهي أفضل وسيلة لإجراء اختبار على قيمة متغير في Bash لمعرفة هل المتغير فارغ (أي أن قيمته هي "")؟

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
  • 1

توجد ثلاث حالات للمتغيّرات في Bash:

- متغيّر غير معرَّف (لم تُعطَ له قيمة)
- متغيّر معرَّف وقيمته سلسلة محارف خاويّة (طولها يُساوي صفرًا)
- متغيّر معرَّف وقيمته سلسلة محارف غير خاويّة (طولها يُساوي واحدًا أو أكثر).

إذا كنت لا تهتمّ بالتفريق بين ما إذا كان المتغيّر غير معرَّف وما إذا كان فارغًا يُمكن استخدام الصّيغة (الاختبار صحيح في الحالتين الأولييْن):

if [ -z "$var" ]

أمّا إذا كنت تهتم بالتّفريق بين الاثنين فاستخدم الاختبار التّالي لمعرفة هل المتغيّر معرَّف (الاختبار صحيح إذا كان المتغير غير معرّف):
 

if [ -z ${var+x} ]

الاختبار التّالي صحيح إذا كان المتغيّر معرّفًا وقيمته فارغة (لاحظ الفرق بين الاثنين، علامة - بدلا من +):

if [ -z ${var-x} ]

وبالنّسبة للحالة الأخرى (معرَّف وقيمته سلسلة محارف غير فارغة):
 

if [ -n "$var" ]

سكربت قصير لتجربة هذه الحالات الأربع على التّوالي:
 

#!/bin/bash
VAR="VARIABLE"
echo "$VAR"
if [ -z "${VAR}" ]; then
    echo "VAR is unset or set to the empty string"
fi
if [ -z "${VAR+set}" ]; then
    echo "VAR is unset"
fi
if [ -z "${VAR-set}" ]; then
    echo "VAR is set to the empty string"
fi
if [ -n "$VAR" ]; then
   echo "VAR is set to a non emty string"
fi



جرّب قيّمًا عدّة للمتغيّر VAR (أعطه قيمة فارغة مرة، واحذفه مرة وأعطه قيمة غير فارغة مرة).
 

1 شخص أعجب بهذا

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة

يجب أن تكون عضوًا لدينا لتتمكّن من التعليق

انشاء حساب جديد

يستغرق التسجيل بضع ثوان فقط


سجّل حسابًا جديدًا

تسجيل الدخول

تملك حسابا مسجّلا بالفعل؟


سجّل دخولك الآن