¿Cuál es el equivalente a $ {var: -defaultvalue} en pescado?

Hola, estoy tratando de traducir mi .bashrc al formato de pez casi terminado, la mayoría de las veces está claro en la documentación, pero esta parte me da dolor de cabeza ... es así que mi gnupg funciona con mi yubikey ssh, etc. La versión de pez es la última. 3.0 bajo Arch GNU / Linux

original en BASH:

# Set SSH to use gpg-agent
unset SSH_AGENT_PID
if [ "${gnupg_SSH_AUTH_SOCK_by:-0}" -ne $ ]; then
  export SSH_AUTH_SOCK="/run/user/$UID/gnupg/S.gpg-agent.ssh"
fi
echo "UPDATESTARTUPTTY" | gpg-connect-agent > /dev/null 2&>1

Mina medio convertida en pescado:

set -e SSH_AGENT_PID
if [ "${gnupg_SSH_AUTH_SOCK_by:-0}" -ne $ ]
  set -x  SSH_AUTH_SOCK="/run/user/$UID/gnupg/S.gpg-agent.ssh"
end
echo "UPDATESTARTUPTTY" | gpg-connect-agent > /dev/null 2>&1

so como ves arriba, hasta ahora he convertido el stdin y el stderror pine y la variable unset con set -e el error que estoy teniendo es un poco más oscuro para mí:

~/.config/fish/config.fish (line 33): ${ is not a valid variable in fish.
if [ "${gnupg_SSH_AUTH_SOCK_by:-0}" -ne $ ]
       ^
from sourcing file ~/.config/fish/config.fish
        called during startup

Cualquier ayuda será muy apreciada, BTW también será agradable migrar :) ¿hay alguna por ahí?

[edit] ok, esto funcionó gracias a la respuesta a continuación, ahora todo mi entorno bash, perfil, bashrc, etc. se traduce a fish y lo uso únicamente como mi shell 100%

Respuestas a la pregunta(2)

Su respuesta a la pregunta