متغير وكيل غير معرّف قد يحذف الوسيط بأكمله في Fish
ضع تشخيص الوكيل بين علامتي اقتباس في Fish حتى لا يمحو متغير غير معرّف أو خالٍ من العناصر التسمية المرتبطة به.
في 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
يعني نجاح الاستعلام أن المتغير معرّف، وليس بالضرورة أنه يحمل قيمة غير فارغة أو أن عميلًا سيستخدمه. فالتصدير واكتشاف الوكيل الخاص بكل عميل فحصان منفصلان.