Aqui está uma função de trabalho que é semelhante à sua função de teste.
function testvarz
switch (count $argv)
case 0
echo 'zero'
case 1
echo "one $argv[1]"
case 2
echo "two $argv[1] $argv[2]"
case '*'
echo 'else'
end
end
Você pode usar uma estrutura semelhante para sua função connect
.
A propósito, você deve usar similarmente $#
em sua função Bash ao invés de tentar confiar em $2
sendo nulo. Você também pode usar uma instrução case
no Bash.