L’exécution de deux commandes ou plus sur une seule ligne peut vous faire gagner beaucoup de temps et vous aider à devenir plus efficace et productif sous Linux.
Il existe trois façons d’exécuter plusieurs commandes sur une seule ligne sous Linux :
; | Commande 1 ; Commande 2 | Exécutez d’abord la commande 1 puis la commande 2 |
&& | Commande 1 && Commande 2 | Exécutez la commande 2 uniquement si la commande 1 se termine avec succès |
|| | Commande 1 || Commande 2 | Exécutez la commande 2 uniquement si la commande 1 échoue |
Laissez-moi vous montrer en détail comment vous pouvez chaîner des commandes sous Linux.
Utilisant ; pour exécuter plusieurs commandes Linux sur une seule ligne
Le plus simple de tous est le point-virgule (;). Vous combinez simplement plusieurs commandes que vous souhaitez exécuter en utilisant ; de la manière suivante :
cmd1; cmd2; cmd3
Ici, cmd1 s’exécutera en premier. Que cmd1 s’exécute avec succès ou avec une erreur, cmd2 s’exécutera après. Et lorsque la commande cmd2 se termine, cmd3 s’exécutera.
Prenons un example vous pouvez pratiquer facilement (si vous le souhaitez).
mkdir new_dir; cd new_dir; pwd
Dans la commande ci-dessus, vous créez d’abord un nouveau répertoire nommé new_dir avec la commande mkdir. Ensuite, vous basculez vers ce répertoire nouvellement créé à l’aide de la commande cd. Enfin, vous imprimez votre emplacement actuel avec la commande pwd.
Exécution de plusieurs commandes Linux avec ;
L’espace après le point-virgule (;) est facultatif mais il rend la chaîne de commandes facilement lisible.
Utiliser && pour exécuter plusieurs commandes Linux
Parfois, vous voulez vous assurer que dans la chaîne de commandes Linux, le la commande suivante ne s’exécute que lorsque la commande précédente se termine avec succès. C’est là que l’opérateur logique AND && entre en scène :
cmd1 && cmd2 && cmd3
Si vous utilisez des distributions basées sur Ubuntu ou Debian, vous devez avoir rencontré cette commande qui utilise le concept && :
sudo apt update && sudo apt upgrade
Ici la première commande (sudo apt update) actualise d’abord le cache de la base de données du package. S’il n’y a pas d’erreur, il mettra alors à niveau tous les packages dont les versions les plus récentes sont disponibles.
Prenons plus tôt example. Si le new_dir existe déjà, la commande mkdir renverra une erreur. La différence dans le comportement de ; et && peuvent être vus dans la capture d’écran ci-dessous :
Avez-vous vu comment les commandes séparées par && se sont arrêtées lorsque la première commande a généré une erreur ?
Utilisation de || exécuter plusieurs commandes Linux à la fois
Vous pouvez utiliser l’opérateur OU logique (||) pour exécuter une chaîne de commandes mais le la commande suivante ne s’exécute que lorsque la commande précédente se termine par une erreur. C’est à l’opposé de ce que vous avez vu avec &&.
cmd1 || cmd2 || cmd3
Si cmd1 échoue, cmd2 s’exécute. Si cmd2 s’exécute avec succès, cmd3 ne s’exécutera pas.
Dans la capture d’écran ci-dessus, la commande mkdir new_dir échoue car new_dir existe déjà. Comme cette commande échoue, la commande suivante cd new_dir est exécutée avec succès. Et maintenant que cette commande s’est exécutée avec succès, la prochaine commande pwd ne s’exécutera pas.
Astuce bonus : combinez && et || les opérateurs
Vous pouvez combiner les opérateurs pour exécuter deux commandes Linux ou plus.
Si vous combinez trois commandes avec && et ||, il se comportera comme le opérateur ternaire en C/C++ ( condition ? expression_true ; expression_false).
cmd1 && cmd2 || cmd3
Pour example, tu peux vérifier si le fichier existe dans bash, et imprimez les messages en conséquence.
[ -f file.txt ] && echo "File exists" || echo "File doesn't exist"
Exécutez la commande ci-dessus avant et après avoir créé le fichier file.txt pour voir la différence :
Comme le copier-coller dans le terminal Linux, l’exécution de plusieurs commandes à la fois est également l’un des nombreux conseils de ligne de commande Linux pour gagner du temps. Bien qu’élémentaire, c’est un concept essentiel que tout utilisateur de terminal Linux doit connaître.
Vous pouvez également utiliser ;, && et || pour exécuter plusieurs commandes dans bash scripts aussi.
J’espère que vous avez aimé cette astuce de terminal. Restez à l’écoute pour plus de conseils et d’outils de commande Linux publiés chaque mardi dans le cadre de la série #TerminalTuesday.