L’enchaînement des commandes sous Linux.

Voici les différentes manières d’enchaîner des commandes sous Linux, au travers de plusieurs exemples.

La double esperluette « && »

sudo apt-get update
sudo apt-get upgrade -y
# devient
sudo apt-get update && sudo apt-get upgrade -y

Dans cet exemple, « sudo apt-get upgrade -y » s’exécutera uniquement si la commande « sudo apt-get update » réussit.

wget https://example.com/archive.tar.gz && tar zxvf archive.tar.gz -C /opt/ && cd /opt/archive/

La commande wget télécharge le fichier archive.
Si le téléchargement réussit, tar extrait l’archive dans le répertoire /opt/.
Enfin, si l’extraction est réussie, cd change le répertoire courant vers le dossier extrait.

Le point virgule ;

Sur Linux, le point-virgule permet d’enchaîner plusieurs commandes, indépendamment de leur réussite ou échec. Ainsi, toutes les commandes s’exécutent dans l’ordre, même si une commande précédente échoue. Il n’y a aucun contrôle sur le résultat de la commande précédente.

A éviter donc sauf certitude absolue.

mkdir /home/flo/dossier1/; cd /home/flo/dossier1/; touch monfichier.txt

Utilisation de la double barre verticale :

Le double barre verticale permet d’exécuter une commande uniquement si la commande précédente échoue (code de sortie différent de 0).

cd /home/flo/dossier1/ || echo "Le dossier n'existe pas."
# Alors
cd /home/flo/dossier1 || mkdir /home/flo/dossier1

Pipeline ou | barre verticale :

L’exemple ci-dessous permet d’afficher uniquement les fichiers ayant l’extension « .txt » dans le répertoire courant, grâce à un filtre basé sur grep.

ls -l | grep ".txt"


Commentaires

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *