diff options
author | Robert Alessi <alessi@robertalessi.net> | 2018-09-19 20:58:47 +0200 |
---|---|---|
committer | Robert Alessi <alessi@robertalessi.net> | 2018-09-19 20:58:47 +0200 |
commit | 01cc51b33ac7dd9b3404478a09642c5005bc228a (patch) | |
tree | 1cca4e6c978760fd985def99a8ad1acdc3139531 | |
parent | c2698094f2cd48a36dcadf161127d69bc33697f9 (diff) | |
download | courses-01cc51b33ac7dd9b3404478a09642c5005bc228a.tar.gz |
03-grep-bash.tex: added tests
-rw-r--r-- | _preamble.tex | 2 | ||||
-rw-r--r-- | fichiers/03-grep-bash.tex | 83 |
2 files changed, 81 insertions, 4 deletions
diff --git a/_preamble.tex b/_preamble.tex index 5c3a499..377ebe5 100644 --- a/_preamble.tex +++ b/_preamble.tex | |||
@@ -1,4 +1,4 @@ | |||
1 | \documentclass[open=any, DIV=classic]{scrbook} | 1 | \documentclass[open=any, listof=leveldown, DIV=classic]{scrbook} |
2 | \usepackage[french]{babel} | 2 | \usepackage[french]{babel} |
3 | 3 | ||
4 | \usepackage{fontspec} | 4 | \usepackage{fontspec} |
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 | ||
681 | Voici donc comment se présente le script \verb|backup.sh|: | 685 | Voici donc comment se présente le script \verb|backup.sh| une fois la |
682 | \begin{minted}[linenos]{bash} | 686 | condition insérée: |
687 | \begin{listing}[h] | ||
688 | \begin{minted}[linenos,highlightlines={7-14}]{bash} | ||
683 | #!/bin/bash | 689 | #!/bin/bash |
684 | echo "Veuillez choisir l'extension des fichiers à sauvegarder" | 690 | echo "Veuillez choisir l'extension des fichiers à sauvegarder" |
685 | echo "(sans le point):" | 691 | echo "(sans le point):" |
@@ -700,7 +706,78 @@ zip -r "$backupdir".zip "$backupdir" | |||
700 | echo "Terminé. $0 a copié $nbre fichiers .$ext dans $backupdir" | 706 | echo "Terminé. $0 a copié $nbre fichiers .$ext dans $backupdir" |
701 | echo "et l'archive $backupdir.zip a été créée." | 707 | echo "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} | ||
715 | Le tableau suivant donne la liste des tests les plus répandus que l'on | ||
716 | peut associer aux conditions. Les tests sont placés entre crochets | ||
717 | droits 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 à | ||
749 | une 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 | ||
752 | retourne 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 | ||
757 | bibliography.bib makefile _preamble-ed.tex _preamble.tex README.tex | ||
758 | fichiers _preamble_bbl.tex _preamble.log README.md | ||
759 | [robert@kiddo courses]$ test -d fichiers | ||
760 | [robert@kiddo courses]$ echo $? | ||
761 | 0 | ||
762 | [robert@kiddo courses]$ test -x makefile | ||
763 | [robert@kiddo courses]$ echo $? | ||
764 | 1 | ||
765 | [robert@kiddo courses]$ test -e makefile | ||
766 | [robert@kiddo courses]$ echo $? | ||
767 | 0 | ||
768 | [robert@kiddo courses]$ test 0123 = 123 | ||
769 | [robert@kiddo courses]$ echo $? | ||
770 | 1 | ||
771 | [robert@kiddo courses]$ test 0123 -eq 123 | ||
772 | [robert@kiddo courses]$ echo $? | ||
773 | 0 | ||
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 | ||