Je vois ces deux utilisations sur Ubuntu "commande && commande" et "commande; commande",
par exempleapt-get update && apt-get upgrade
Qu'est-ce qui différerait si j'utilise apt-get update; apt-get upgrade
?
Je ne demande pas cet usage spécifique, mais en général, quelle est la différence entre ces deux usages?
& (simple sequencing), && (conditional AND) and || (conditional OR)
.||
également.Réponses:
&&
est un opérateur logique.;
est un séquençage simple.Dans
cmd1 && cmd2
, cmd2 ne sera exécuté que si cmd1 se ferme avec un code retour réussi.Alors que in
cmd1; cmd2
, cmd2 s'exécutera quel que soit le statut de sortie de cmd1 (en supposant que vous n'avez pas configuré votre shell pour qu'il se ferme en cas d'échec de votre script ou de quelque chose).Sur une note connexe, avec
cmd1 || cmd2
l'||
opérateur logique "OU", cmd2 ne sera exécuté que si cmd1 échoue (retourne un code de sortie non nul).Ces opérateurs logiques sont parfois utilisés dans des scripts à la place d'une instruction if de base. Par exemple,
... peut être réalisé de manière plus concise avec:
la source
Syntaxe
commande2 est exécutée si, et seulement si,
command1
renvoie un état de sortie égal à zéro ( vrai ). En d'autres termes, exécutezcommand1
et si c'est réussi, alors exécutezcommand2
.Les deux commande1 et commande2 seront exécutées indépendamment. Le point-virgule vous permet de saisir plusieurs commandes sur une seule ligne.
Connexes :
commande2 est exécutée si, et seulement si, commande1 renvoie un état de sortie non nul. En d'autres termes, exécutez
command1
avec succès ou exécutezcommand2
.Exemple
&&
opérateur:;
opérateur:||
opérateur:Liens externes
la source