اذهب إلى المحتوى

السؤال

Recommended Posts

  • 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 (أعطه قيمة فارغة مرة، واحذفه مرة وأعطه قيمة غير فارغة مرة).
 

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...