aboutsummaryrefslogtreecommitdiff
path: root/fichiers
diff options
context:
space:
mode:
authorRobert Alessi <alessi@robertalessi.net>2018-09-19 20:58:47 +0200
committerRobert Alessi <alessi@robertalessi.net>2018-09-19 20:58:47 +0200
commit01cc51b33ac7dd9b3404478a09642c5005bc228a (patch)
tree1cca4e6c978760fd985def99a8ad1acdc3139531 /fichiers
parentc2698094f2cd48a36dcadf161127d69bc33697f9 (diff)
downloadcourses-01cc51b33ac7dd9b3404478a09642c5005bc228a.tar.gz
03-grep-bash.tex: added tests
Diffstat (limited to 'fichiers')
-rw-r--r--fichiers/03-grep-bash.tex83
1 files changed, 80 insertions, 3 deletions
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 @@
11\mdfsetup{ 11\mdfsetup{
12 backgroundcolor=Lavender, 12 backgroundcolor=Lavender,
13 hidealllines=true} 13 hidealllines=true}
14\usepackage{minted} 14\usepackage[newfloat]{minted}
15\SetupFloatingEnvironment{listing}{listname=Listings}
15\surroundwithmdframed{minted} 16\surroundwithmdframed{minted}
16\setminted{ 17\setminted{
17 breaklines, 18 breaklines,
@@ -23,6 +24,8 @@
23\maketitle 24\maketitle
24\renewcommand{\contentsname}{Sommaire} 25\renewcommand{\contentsname}{Sommaire}
25\tableofcontents 26\tableofcontents
27\listoflistings
28\listoftables
26 29
27\chapter{grep, les expressions régulières} 30\chapter{grep, les expressions régulières}
28\label{cha:grep-les-expressions} 31\label{cha:grep-les-expressions}
@@ -106,6 +109,7 @@ symboles suivants\footnote{Cette liste n'est pas exhaustive.}:
106 \verb|\<| et \verb|\>| & représentent respectivement un début et une 109 \verb|\<| et \verb|\>| & représentent respectivement un début et une
107 fin de mot\\ 110 fin de mot\\
108 \bottomrule 111 \bottomrule
112 \caption{grep \emph{patterns}}
109\end{xltabular} 113\end{xltabular}
110 114
111\paragraph{grep, egrep} 115\paragraph{grep, egrep}
@@ -678,8 +682,10 @@ fi
678 \end{enumerate} 682 \end{enumerate}
679\end{quoting} 683\end{quoting}
680 684
681Voici donc comment se présente le script \verb|backup.sh|: 685Voici donc comment se présente le script \verb|backup.sh| une fois la
682\begin{minted}[linenos]{bash} 686condition insérée:
687\begin{listing}[h]
688\begin{minted}[linenos,highlightlines={7-14}]{bash}
683#!/bin/bash 689#!/bin/bash
684echo "Veuillez choisir l'extension des fichiers à sauvegarder" 690echo "Veuillez choisir l'extension des fichiers à sauvegarder"
685echo "(sans le point):" 691echo "(sans le point):"
@@ -700,7 +706,78 @@ zip -r "$backupdir".zip "$backupdir"
700echo "Terminé. $0 a copié $nbre fichiers .$ext dans $backupdir" 706echo "Terminé. $0 a copié $nbre fichiers .$ext dans $backupdir"
701echo "et l'archive $backupdir.zip a été créée." 707echo "et l'archive $backupdir.zip a été créée."
702\end{minted} 708\end{minted}
709\caption{bash: exemple de condition if-then-else}
710\label{lst:if-then-else}
711\end{listing}
712
713\subsection{Tests}
714\label{sec:tests}
715Le tableau suivant donne la liste des tests les plus répandus que l'on
716peut associer aux conditions. Les tests sont placés entre crochets
717droits comme le montre la ligne~7 du \vref{lst:if-then-else}.
718\begin{xltabular}{.77\linewidth}{lX}
719 \toprule
720 Opérateur & Description \\
721 \midrule\endhead
722 \verb|! expr| & \verb|expr| est faux \\
723 \verb|-n str| & la longueur de \verb|str| $>0$\footnote{Comprendre:
724 \texttt{str} existe.} \\
725 \verb|-z str| & la longueur de \verb|str| $=0$\footnote{Comprendre:
726 \texttt{str} n'existe pas.}\\
727 \verb|str1 = str2| & \verb|str1| est égal à \verb|str2|\\
728 \verb|str1 != str2| & \verb|str1| n'est pas égal à \verb|str2|\\
729 \verb|int1 -eq int2| & les nombres \verb|int1| et \verb|int2| sont
730 égaux\\
731 \verb|int1 -gt int2| & \verb|int1| $>$ \verb|int2|\\
732 \verb|int1 -lt int2| & \verb|int1| $<$ \verb|int2|\\
733 \verb|-d fichier| & \verb|fichier| existe et est un répertoire\\
734 \verb|-e fichier| & \verb|fichier| existe \\
735 \verb|-s fichier| & \verb|fichier| existe et n'est pas vide (taille
736 $>0$) \\
737 \verb|-r fichier| & \verb|fichier| existe et est accessible en
738 lecture\\
739 \verb|-w fichier| & \verb|fichier| existe et est accessible en
740 écriture \\
741 \verb|-x fichier| & \verb|fichier| existe et est accessible en
742 exécution \\
743 \bottomrule
744 \caption{tests\label{tab:tests}}
745\end{xltabular}
703 746
747\paragraph{test}
748À l'intérieur du script \verb|bash|, les crochets renvoient en fait à
749une commande par ailleurs disponible: \verb|test|. La commande
750\verb|test| renvoie en fait la sortie \verb|0| si le résultat est
751\emph{vrai} et \verb|1| si le résultat est faux. Le terminal ne
752retourne pas le resultat, mais celui-ci est associé à une variable
753\verb|$?| que l'on peut afficher par la commande:
754\mintinline{bash}|echo $?|. En voici quelques exemples:
755\begin{minted}[linenos]{text}
756[robert@kiddo courses]$ ls
757bibliography.bib makefile _preamble-ed.tex _preamble.tex README.tex
758fichiers _preamble_bbl.tex _preamble.log README.md
759[robert@kiddo courses]$ test -d fichiers
760[robert@kiddo courses]$ echo $?
7610
762[robert@kiddo courses]$ test -x makefile
763[robert@kiddo courses]$ echo $?
7641
765[robert@kiddo courses]$ test -e makefile
766[robert@kiddo courses]$ echo $?
7670
768[robert@kiddo courses]$ test 0123 = 123
769[robert@kiddo courses]$ echo $?
7701
771[robert@kiddo courses]$ test 0123 -eq 123
772[robert@kiddo courses]$ echo $?
7730
774\end{minted}
775\begin{quoting}
776 \textbf{Commentaire ---} Cet exemple montre quelle est la différence
777 entre le test $=$ pour qui il faut une stricte équivalence dans les
778 chaînes de caractères, et le test \verb|-eq| qui est un test
779 arithmétique.
780\end{quoting}
704 781
705\hfill\verb|../..| à suivre 782\hfill\verb|../..| à suivre
706 783