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
問い合わせが成功したのは変数が定義されているという意味で、空でない値があることやクライアントがそれを使うことを保証するものではありません。エクスポートとクライアント固有のプロキシ検出は別々の確認です。