From 01cc51b33ac7dd9b3404478a09642c5005bc228a Mon Sep 17 00:00:00 2001 From: Robert Alessi Date: Wed, 19 Sep 2018 20:58:47 +0200 Subject: 03-grep-bash.tex: added tests --- fichiers/03-grep-bash.tex | 83 +++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 80 insertions(+), 3 deletions(-) (limited to 'fichiers/03-grep-bash.tex') diff --git a/fichiers/03-grep-bash.tex b/fichiers/03-grep-bash.tex index 1dc9e2c..4ce1bba 100644 --- a/fichiers/03-grep-bash.tex +++ b/fichiers/03-grep-bash.tex @@ -11,7 +11,8 @@ \mdfsetup{ backgroundcolor=Lavender, hidealllines=true} -\usepackage{minted} +\usepackage[newfloat]{minted} +\SetupFloatingEnvironment{listing}{listname=Listings} \surroundwithmdframed{minted} \setminted{ breaklines, @@ -23,6 +24,8 @@ \maketitle \renewcommand{\contentsname}{Sommaire} \tableofcontents +\listoflistings +\listoftables \chapter{grep, les expressions régulières} \label{cha:grep-les-expressions} @@ -106,6 +109,7 @@ symboles suivants\footnote{Cette liste n'est pas exhaustive.}: \verb|\<| et \verb|\>| & représentent respectivement un début et une fin de mot\\ \bottomrule + \caption{grep \emph{patterns}} \end{xltabular} \paragraph{grep, egrep} @@ -678,8 +682,10 @@ fi \end{enumerate} \end{quoting} -Voici donc comment se présente le script \verb|backup.sh|: -\begin{minted}[linenos]{bash} +Voici donc comment se présente le script \verb|backup.sh| une fois la +condition insérée: +\begin{listing}[h] +\begin{minted}[linenos,highlightlines={7-14}]{bash} #!/bin/bash echo "Veuillez choisir l'extension des fichiers à sauvegarder" echo "(sans le point):" @@ -700,7 +706,78 @@ zip -r "$backupdir".zip "$backupdir" echo "Terminé. $0 a copié $nbre fichiers .$ext dans $backupdir" echo "et l'archive $backupdir.zip a été créée." \end{minted} +\caption{bash: exemple de condition if-then-else} +\label{lst:if-then-else} +\end{listing} + +\subsection{Tests} +\label{sec:tests} +Le tableau suivant donne la liste des tests les plus répandus que l'on +peut associer aux conditions. Les tests sont placés entre crochets +droits comme le montre la ligne~7 du \vref{lst:if-then-else}. +\begin{xltabular}{.77\linewidth}{lX} + \toprule + Opérateur & Description \\ + \midrule\endhead + \verb|! expr| & \verb|expr| est faux \\ + \verb|-n str| & la longueur de \verb|str| $>0$\footnote{Comprendre: + \texttt{str} existe.} \\ + \verb|-z str| & la longueur de \verb|str| $=0$\footnote{Comprendre: + \texttt{str} n'existe pas.}\\ + \verb|str1 = str2| & \verb|str1| est égal à \verb|str2|\\ + \verb|str1 != str2| & \verb|str1| n'est pas égal à \verb|str2|\\ + \verb|int1 -eq int2| & les nombres \verb|int1| et \verb|int2| sont + égaux\\ + \verb|int1 -gt int2| & \verb|int1| $>$ \verb|int2|\\ + \verb|int1 -lt int2| & \verb|int1| $<$ \verb|int2|\\ + \verb|-d fichier| & \verb|fichier| existe et est un répertoire\\ + \verb|-e fichier| & \verb|fichier| existe \\ + \verb|-s fichier| & \verb|fichier| existe et n'est pas vide (taille + $>0$) \\ + \verb|-r fichier| & \verb|fichier| existe et est accessible en + lecture\\ + \verb|-w fichier| & \verb|fichier| existe et est accessible en + écriture \\ + \verb|-x fichier| & \verb|fichier| existe et est accessible en + exécution \\ + \bottomrule + \caption{tests\label{tab:tests}} +\end{xltabular} +\paragraph{test} +À l'intérieur du script \verb|bash|, les crochets renvoient en fait à +une commande par ailleurs disponible: \verb|test|. La commande +\verb|test| renvoie en fait la sortie \verb|0| si le résultat est +\emph{vrai} et \verb|1| si le résultat est faux. Le terminal ne +retourne pas le resultat, mais celui-ci est associé à une variable +\verb|$?| que l'on peut afficher par la commande: +\mintinline{bash}|echo $?|. En voici quelques exemples: +\begin{minted}[linenos]{text} +[robert@kiddo courses]$ ls +bibliography.bib makefile _preamble-ed.tex _preamble.tex README.tex +fichiers _preamble_bbl.tex _preamble.log README.md +[robert@kiddo courses]$ test -d fichiers +[robert@kiddo courses]$ echo $? +0 +[robert@kiddo courses]$ test -x makefile +[robert@kiddo courses]$ echo $? +1 +[robert@kiddo courses]$ test -e makefile +[robert@kiddo courses]$ echo $? +0 +[robert@kiddo courses]$ test 0123 = 123 +[robert@kiddo courses]$ echo $? +1 +[robert@kiddo courses]$ test 0123 -eq 123 +[robert@kiddo courses]$ echo $? +0 +\end{minted} +\begin{quoting} + \textbf{Commentaire ---} Cet exemple montre quelle est la différence + entre le test $=$ pour qui il faut une stricte équivalence dans les + chaînes de caractères, et le test \verb|-eq| qui est un test + arithmétique. +\end{quoting} \hfill\verb|../..| à suivre -- cgit v1.2.3