J'utilise normalement ;
pour combiner plus d'une commande dans une ligne, mais certaines personnes préfèrent &&
. Y a-t-il une différence? Par exemple, cd ~; cd -
et cd ~ && cd -
semble faire la même chose. Quelle version est la plus portable, par exemple sera prise en charge par un sous-ensemble bash comme le shell d'Android ou plus?
bash
shell
syntax
multiplatform
psihodelia
la source
la source
;
ou&&
celui? Ou voulez-vous dire les deux?&&
.J'utilise
&&
car il y a longtemps sur l'ordinateur à proximité:mais pas aidé ...;)
cd /tnp/test && rm -rf *
est sécurisé... ;)la source
rm -rf /tnp/test
rm /tnp/test/ -rf
pour éviter un mauvaisIn
cmd1 && cmd2
,cmd2
n'est exécuté qu'en cas decmd1
succès (renvoie 0).Dans
cmd1 ; cmd2
,cmd2
est exécuté dans tous les cas.Les deux constructions font partie d'un shell compatible POSIX.
la source
&&
signifie exécuter la commande suivante si la précédente est sortie avec l'état 0. Pour le contraire, utilisez||
ie pour être exécutée si la commande précédente sort avec un état différent de 0;
s'exécute toujours.Très utile lorsque vous devez effectuer une action particulière selon que la commande précédente s'est terminée correctement ou non.
la source
Les commandes séparées par
;
sont exécutées séquentiellement quel que soit leur état d'achèvement.Avec
&&
, la deuxième commande n'est exécutée que si la première se termine avec succès (retourne l'état de sortie de 0).Ceci est couvert dans la page de manuel bash ci-dessous
Lists
. Je m'attendrais à ce que n'importe quel shell de type Unix supporte ces deux opérateurs, mais je ne connais pas spécifiquement le shell Android.la source
&&
permet une exécution conditionnelle tandis que;
la deuxième commande est toujours exécutée.Dans par exemple
command1 && command2
,command2
ne s'exécutera que lorsquecommand1
s'est terminé parexit 0
, signalant que tout s'est bien passé, tandis que danscommand1 ; command2
la deuxième commande sera toujours exécutée quel que soit le résultatcommand1
.la source
&& est un ET logique dans bash. Bash a une évaluation de court-circuit du ET logique. Cet idiome est une manière plus simple d'exprimer ce qui suit:
Tandis que le ; la version est simplement:
la source