في Fish، قد يطبع هذا التشخيص سطرًا جديدًا فقط:

echo HTTPS_PROXY=$HTTPS_PROXY

تحتوي متغيرات Fish على قوائم. وعندما يُلحق متغير غير محاط بعلامات اقتباس بنص، يدمج Fish ذلك النص مع كل عنصر من عناصر القائمة. والمتغير غير المعرّف، أو المعرّف بلا أي عناصر، لا ينتج أي دمج. وهكذا يختفي الوسيط بأكمله، بما في ذلك HTTPS_PROXY=.

احتفظ بالتسمية بوضع التوسيع بين علامتي اقتباس:

printf '%s\n' "HTTPS_PROXY=$HTTPS_PROXY"

يوفر هذا وسيطًا واحدًا حتى عندما لا يحتوي المتغير على أي عناصر، فتبقى التسمية ظاهرة. أما إحاطة متغير متعدد العناصر بعلامات اقتباس فتضم عناصره بمسافات؛ وهي لا تثبت أن المتغير يحتوي على عنوان URL واحد صالح للوكيل.

للتحقق من وجود المتغير، استخدم عملية الاستعلام في Fish:

if set --query HTTPS_PROXY
    printf '%s\n' "HTTPS_PROXY=$HTTPS_PROXY"
else
    echo 'HTTPS_PROXY is not defined'
end

يعني نجاح الاستعلام أن المتغير معرّف، وليس بالضرورة أنه يحمل قيمة غير فارغة أو أن عميلًا سيستخدمه. فالتصدير واكتشاف الوكيل الخاص بكل عميل فحصان منفصلان.

مقالات ذات صلة