Quelle est la différence entre l'esperluette et le point-virgule dans Linux Bash ?
Par exemple,
$ command1 && command2
contre
$ command1; command2
          Quelle est la différence entre l'esperluette et le point-virgule dans Linux Bash ?
Par exemple,
$ command1 && command2
contre
$ command1; command2
          Réponses:
L' &&opérateur est un opérateur ET booléen: si le côté gauche renvoie un état de sortie différent de zéro, l'opérateur renvoie cet état et n'évalue pas le côté droit (il court-circuite), sinon il évalue le côté droit et renvoie son état de sortie . Ceci est couramment utilisé pour s'assurer qu'il command2n'est exécuté que s'il est command1exécuté avec succès.
Le ;jeton sépare simplement les commandes, il exécutera donc la deuxième commande, que la première réussisse ou non.
&&différente d'une esperluette simple &dans bash?
                    &provoque l' exécution de la commande en arrière-plan, donc oui. «Exécuter ceci en arrière-plan» est très différent de «exécuter cette commande suivante uniquement si celle-ci réussit».
                    ;Attend- il toujours la fin de la première commande?
                    a;bsignifie «courir apuis courir b».  a&&bsignifie "exécuter a, puis exécuter buniquement si cela aa réussi."
                    command1 && command2s'exécute command2si (et seulement si) l' command1exécution se termine avec succès. Dans le jargon Unix, cela signifie un code de sortie / code de retour égal à zéro.
command1; command2s'exécute command2après exécution command1, séquentiellement. Peu importe que les commandes aient réussi ou non.
Le premier est une logique simple ANDutilisant l'évaluation des courts-circuits, le second délimite simplement deux commandes.
Ce qui se passe en réalité, c'est que lorsque le premier programme renvoie un code de sortie différent de zéro, le tout ANDest évalué FALSEet la deuxième commande ne sera pas exécutée. Ce dernier les exécute simplement tous les deux dans l'ordre.