
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"
Laisser un commentaire