Question chaîne de commandes de poisson via `&&` ou `|| '


Dans Bash / ZSH et autres shells, je suis habitué à utiliser && et ||.

Y a-t-il un équivalent dans Fish?


84
2017-07-10 03:01


origine


Cette syntaxe est désormais prise en charge sur la branche principale et sera publiée dans Fish 3.0 (github.com/fish-shell/fish-shell/commit/) - Elliott Beach


Réponses:


Fish n'a pas de syntaxe spéciale pour un ET logique (&&) ou un OU logique (||).

Au lieu de cela, vous pouvez utiliser les commandes and et or, qui vérifie le statut de sortie de la commande précédente et agit en conséquence:

command1
and command2
command1
or command2

De plus, comme dans bash, vous pouvez utiliser un point-virgule ; exécuter deux commandes l'une après l'autre:

command1 ; command2

Cela permet d'utiliser une syntaxe plus familière:

command1 ;and command2
command1 ;or command2

Voir http://fishshell.com/docs/current/tutorial.html#tut_combiners


115
2017-07-10 03:18



Il existe un problème de github ouvert pour ajouter le support de cette syntaxe: && ne fonctionne pas · Numéro 150 · fish-shell / fish-shell - aboy021
This allows using a more familiar syntax: est très subjectif - Petr Peller
;and est moins lisible que && comme le point-virgule suggère une opération logiquement disjointe. C'est visuellement discordant. - Elliott Beach
@Elliott je suis d'accord, mais Fish ne vous donne pas le choix. - Dennis
notez bien que dans les coques de poisson et de bourne, les opérateurs AND et OR ont le même ordre, contrairement aux langages basés sur C: unix.stackexchange.com/a/88851/50703 - balupton