Μια ακαθόριστη μεταβλητή διακομιστή μεσολάβησης μπορεί να διαγράψει ολόκληρο το όρισμα στο 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
Ένα επιτυχές ερώτημα σημαίνει ότι η μεταβλητή έχει οριστεί, όχι απαραίτητα ότι περιέχει μη κενή τιμή ή ότι κάποιος πελάτης θα τη χρησιμοποιήσει. Η εξαγωγή και η ανακάλυψη διακομιστή μεσολάβησης ανά πελάτη είναι ξεχωριστοί έλεγχοι.