Comment puis-je convertir cette fonction bash à la coquille de poisson

J'essaie la coquille de poisson 2.0 pour replace bash. J'essaye de convertir la fonction de bash suivante en une fonction de poisson, mais ça me donne l'enfer. J'ai plusieurs fonctions similaires donc si quelqu'un pouvait me diriger dans la bonne direction avec un exemple je serais très reconnaissant

connect() { if [ "$2" != "" ] then ssh -ti ~/.ssh/work/id_rsa user@host$1.domain.com "sudo ssh $2" fi if [ "$2" == "" ] then ssh -ti ~/.ssh/work/id_rsa user@host$1.domain.com "sudo -i" fi } 

J'ai essayé de replace $ 1 et $ 2 par $ argv [1] et $ argv [2] mais il se plaint de ne pas pouvoir localiser la fin du bloc. Je sais que c'est parce que le script synxtax est assez différent chez les poissons. J'ai essayé de commencer à partir d'une fonction plus simple et ai eu des difficultés à find comment l'get faire une chose si une variable est passée, et une autre chose si 2 variables sont passées:

 function testvarz switch "$argv[2]"; case "" echo "no second variable passed" case != "" echo "second variable passed" end end 

mais cela ne fonctionne pas, si vous passez 2 variables il ne fait rien, si vous passez 1 il se plaint

Voici une fonction de travail similaire à votre fonction de test.

  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 

Vous pouvez utiliser une structure similaire pour votre fonction de connect .

Par ailleurs, vous devriez utiliser de même $# dans votre fonction Bash au lieu d'essayer de countr sur $2 étant nul. Vous pouvez également utiliser une instruction de case dans Bash.