Exécutez une commande uniquement si la commande précédente a réussi dans Fish (comme && dans bash)

16

En utilisant Bash, j'ai souvent fait des choses comme si cd /study && ls -la je comprenais que la double esperluette indique au terminal de ne pas exécuter la deuxième partie de cette commande, à moins que la première ne se termine sans erreur.

Ma question est la suivante: après avoir simplement migré vers le shell Fish et essayé la même commande, j'obtiens une erreur indiquant que je ne peux pas utiliser &&et me demandant d'utiliser un seul &qui, je crois, met en arrière la tâche qui n'est pas ce que je veux.

Quelqu'un peut-il me dire la syntaxe correcte pour exécuter mon ancienne commande Bash dans le shell Fish?

Nathaniel
la source

Réponses:

21

Au lieu de &&, qui n'existe pas fish, utilisez ;et la commande and:

cd /study; and ls -la

Selon le fishtutoriel :

Contrairement à d'autres shells, fishn'a pas de syntaxe spéciale comme &&ou ||pour combiner des commandes. Au contraire , il a des commandes and, oret not.

Dan Getz
la source