-
set -eu -o pipefail
commande :
Éléments de commandement
Explication
set
Modifier le fonctionnement de l'environnement Shell.
-u
Si une variable n'existe pas, l'erreur est signalée et l'opération s'arrête (par exemple, variable non liée).
-e
Terminer chaque fois qu'une erreur se produit (par exemple, commande non trouvée)
-o pipefail
Si une sous-commande échoue, l'ensemble de la commande du pipeline échoue, mettant fin au script (par exemple, commande introuvable).
Si ce script rencontre des erreurs, il échoue et se termine.
Réf : https://www.tutorialdocs.com/article/set-command-in-bash.html
-
sudo -n true
commande :
Éléments de commandement
Explication
sudo
Exécuter en tant que superutilisateur
-n
Non-interactif. Empêche sudo
de ne pas demander de mot de passe. Si un mot de passe est requis, sudo
affiche un message d'erreur et quitte
true
Commande intégrée qui renvoie un état de sortie réussi (zéro)
Exécuter en tant que superutilisateur et ne pas demander de mot de passe. Quitter l'état en cas de succès.
Réf : https://linux.die.net/man/8/sudo , https://linux.die.net/abs-guide/internal.html
-
test $? -eq 0 || exit 1 "you should have sudo privilege to run this script"
commande :
Éléments de commandement
Explication
test
Prend une expression comme argument, l'évalue comme '0' ( true
) ou "1" ( false
), et renvoie le résultat dans la variable bash $?
$?
Une variable utilisée pour trouver la valeur de retour en tant que statut de sortie de la dernière commande exécutée.
-eq
équivaut
0
Le résultat de la valeur est vrai
||
L'opérateur logique "OR" est un opérateur booléen. Il peut exécuter des commandes ou des fonctions Shell en fonction de l'état de sortie d'une autre commande.
exit
Quitte le Shell avec un statut N. Si N n'est pas spécifié, il utilise le code de sortie de la dernière commande exécutée.
1
Le résultat de la valeur est faux et est utilisé ici comme argument de la commande exit à utiliser comme code de sortie.
"you should have sudo privilege to run this script"
Si le code de sortie est faux, le message suivant est imprimé sur le terminal
Testez le code de sortie de la dernière variable et vérifiez s'il est égal à "0". Si ce n'est pas le cas, le programme sort avec une erreur et imprime un message donné sur le terminal.
Réf : https://linuxhint.com/bash-test-command/ , http://tldp.org/LDP/abs/html/exit-status.html#EXSREF , https://bash.cyberciti.biz/guide/Logical_OR , https://linuxize.com/post/bash-exit/
-
echo installing the must-have pre-requisites
commande :
Éléments de commandement
Explication
echo
Commande intégrée utilisée pour imprimer des informations ou des messages sur le terminal
installing the must-have pre-requisites
Message à imprimer sur le terminal
Indiquer à l'utilisateur qu'il va installer certains paquets prérequis avant d'installer le programme proprement dit.
Réf : https://linuxhint.com/bash_echo/
-
while read -r p ;
commande :
Éléments de commandement
Explication
while
Créer une boucle "while", c'est-à-dire exécuter un ensemble donné de commandes à l'infini tant que la condition donnée est évaluée comme étant vraie.
read
Lire une ligne de l'entrée standard et la stocker dans une variable
-r
Option transmise à read
qui évite que les barres obliques inverses soient interprétées
p
Variable arbitraire pour read
pour mémoriser l'entrée capturée. Ici, il représente chaque paquet à installer
;
Opérateur de contrôle ET. Passe à la commande suivante et l'exécute quel que soit le statut de sortie de la commande précédente (exécute même si la commande précédente échoue).
Lire un fichier donné ligne par ligne pour toujours ou jusqu'à ce qu'il reçoive la valeur "false", puis passer à la commande suivante.
Réf : https://linuxize.com/post/bash-while-loop/ , http://linuxcommand.org/lc3_man_pages/readh.html , https://linuxhint.com/while_read_line_bash/ , https://pubs.opengroup.org/onlinepubs/9699919799/utilities/V3_chap02.html#tag_18_09_04_09
-
do sudo apt-get install -y $p ;
commande :
Éléments de commandement
Explication
do
Mot réservé utilisé pour délimiter la séquence de commandes qui suit. par exemple, start
apt-get
Outil utilisé par le gestionnaire de paquets APT (Advanced Package Tool) de Debian
install
Une commande utilisée pour installer des paquets
-y
Le formulaire long est --yes
. répondre "oui" à toutes les demandes de renseignements
$p
Utilisé pour appeler la variable arbitraire p
de read
et l'utiliser comme entrée standard
Installer la liste des paquets en tant que superutilisateur sans demander la confirmation de l'installation.
Réf : https://itsfoss.com/apt-get-linux-guide/
-
done < <(cat << "EOF" <list of packages> EOF)
commande :
Éléments de commandement
Explication
done
Mot réservé utilisé pour délimiter la séquence des commandes qui précèdent. par exemple, stop
<
Redirection vers l'entrée standard
cat
Concaténer. permet de visualiser, de créer et d'ajouter des fichiers.
<<
Redirection qui lit l'entrée à partir de la source actuelle jusqu'à ce qu'elle rencontre un délimiteur et qui utilise ensuite ces lignes comme entrée standard pour une commande.
EOF
Délimiteur de fin de fichier
cat << EOF-EOF
Cela permet de lire, puis d'imprimer tout ce qui est compris dans le champ EOF
bloc
<(list)
Obtenir la sortie de la liste ; les parenthèses indiquent que la liste sera exécutée dans un environnement subshell.
Lire la liste des paquets et les rassembler en entrée standard. Redirigez-la vers le fichier read
qui le capture en tant que p
et l'envoie ensuite à la variable $p
ce qui lui permet d'être exécutée par la variable install
et lorsqu'il atteint la commande EOF
redirige la sortie vers done
mettant ainsi un terme à la while read
boucle.
Réf : https://linuxhint.com/cat-command-bash/ , https://linuxhint.com/what-is-cat-eof-bash-script/