more tricks
This commit is contained in:
parent
2bb29f37e3
commit
48b66b3034
107
chap/shell.tex
107
chap/shell.tex
@ -74,7 +74,7 @@ tests et les boucles.
|
|||||||
|
|
||||||
% --------------------------------------------------------------
|
% --------------------------------------------------------------
|
||||||
|
|
||||||
\subsection{Le shebang} \index{shebang}
|
\subsection{Le shebang} \index{shebang} \label{shebang}
|
||||||
|
|
||||||
Le shebang, c'est ce couple de caractères \texttt{\#!} qui apparait
|
Le shebang, c'est ce couple de caractères \texttt{\#!} qui apparait
|
||||||
au tout début d'un script shell.
|
au tout début d'un script shell.
|
||||||
@ -99,7 +99,7 @@ l'usage à l'instant, avec la création d'un script complet~:
|
|||||||
|
|
||||||
\begin{verbatim}
|
\begin{verbatim}
|
||||||
tth@redlady:~$ echo '#!/bin/bash' > foo.sh
|
tth@redlady:~$ echo '#!/bin/bash' > foo.sh
|
||||||
tth@redlady:~$ echo 'printf "%d" 85 >> foo.sh
|
tth@redlady:~$ echo 'printf "%x" 85 >> foo.sh
|
||||||
tth@redlady:~$ chmod u+x ./foo.sh
|
tth@redlady:~$ chmod u+x ./foo.sh
|
||||||
tth@redlady:~$ ./foo.sh
|
tth@redlady:~$ ./foo.sh
|
||||||
55
|
55
|
||||||
@ -145,12 +145,31 @@ Les plus importantes sont là : le choix, la boucle, l'attente.
|
|||||||
|
|
||||||
\subsection {Les tests}
|
\subsection {Les tests}
|
||||||
|
|
||||||
Deux éléments sont ils-égaux ?
|
Deux éléments sont ils égaux ? Et d'abord, ces deux éléments
|
||||||
|
sont-ils comparables ?
|
||||||
|
|
||||||
% --------------------------------------------------------------
|
% --------------------------------------------------------------
|
||||||
|
|
||||||
\subsection {Les boucles}
|
\subsection {Les boucles}
|
||||||
|
|
||||||
|
Exemple très simple~:
|
||||||
|
|
||||||
|
\begin{verbatim}
|
||||||
|
for foo in A B C D
|
||||||
|
do
|
||||||
|
echo ${foo}
|
||||||
|
done
|
||||||
|
\end{verbatim}
|
||||||
|
|
||||||
|
Autre exemple, un peu moins simple~:
|
||||||
|
|
||||||
|
\begin{verbatim}
|
||||||
|
for foo in $(seq 0 37 133)
|
||||||
|
do
|
||||||
|
printf "foo = %3d\n" ${foo}
|
||||||
|
done
|
||||||
|
\end{verbatim}
|
||||||
|
|
||||||
% ==============================================================
|
% ==============================================================
|
||||||
|
|
||||||
\section{Les fonctions}
|
\section{Les fonctions}
|
||||||
@ -173,37 +192,48 @@ Et comment les utiliser~:
|
|||||||
\section{Heredoc}
|
\section{Heredoc}
|
||||||
|
|
||||||
Un nom bien difficile à traduire, peut-être par « document en place » ?
|
Un nom bien difficile à traduire, peut-être par « document en place » ?
|
||||||
|
C'est un moyen simple et efficace de mettre des données textuelles
|
||||||
|
dans un script afin de les envoyer dans le \textsl{stdin} d'un
|
||||||
|
logiciel. Par exemple, quelques commandes pour générer un
|
||||||
|
graphique avec Gnuplot\index{gnuplot} sur la console \textsl{dumb}.
|
||||||
|
|
||||||
\lstinputlisting{code/shell/heredoc.sh}
|
\lstinputlisting{code/shell/heredoc.sh}
|
||||||
|
|
||||||
\begin{verbatim}
|
Après le \textsl{shebang}, nous avons la création de la variable
|
||||||
tth@redlady:~/Devel/TetaTricks$ code/shell/heredoc.sh
|
pour le titre,
|
||||||
|
et ensuite l'appel à Gnuplot avec la redirection
|
||||||
|
\texttt{$<<$ \_\_EOC\_\_} % bug affichage "<<"
|
||||||
|
qui va envoyer sur le stdin de Gnuplot la suite du
|
||||||
|
script shell (des commandes gnuplot), jusque au marqueur de fin,
|
||||||
|
qui est \texttt{\_\_EOC\_\_} dans notre cas.
|
||||||
|
|
||||||
Here Doc
|
... et la démonstration~:
|
||||||
|
|
||||||
1 +--------------------------------------------------------------------+
|
\begin{verbatim}
|
||||||
| +** *** + + + + |
|
tth@redlady:~/Devel/TetaTricks/code/shell$ ./heredoc.sh
|
||||||
0.8 |-+.......**..........:.**.......:..........:.........sin(x).*******-|
|
|
||||||
| ** : : * : : : : |
|
Here Doc (9946)
|
||||||
0.6 |-+....**..:..........:....**....:..........:..........:..........:+-|
|
|
||||||
| * : : * : : : : |
|
1 +-------------------------------------------------------------+
|
||||||
0.4 |-+.**.....:..........:.......*..:..........:..........:..........:+-|
|
| + + + + + + + + + |
|
||||||
| * : : * : : : : |
|
| 0.7*sin(x) ******* |
|
||||||
0.2 |-*........:..........:.........**..........:..........:..........:+-|
|
| ****** ****** |
|
||||||
|* : : * : : : |
|
0.5 |-+ ** ** ** ** +-|
|
||||||
0 |-+........:..........:..........:**........:..........:..........:+-|
|
| ** * * ** |
|
||||||
| : : : * : : : *|
|
| ** ** ** ** |
|
||||||
-0.2 |-+........:..........:..........:..**......:..........:..........:*-|
|
| ** ** ** ** |
|
||||||
| : : : * : : * |
|
|* ** ** *|
|
||||||
-0.4 |-+........:..........:..........:.....*....:..........:........**:+-|
|
0 |-+ * * +-|
|
||||||
| : : : * : : * : |
|
| ** ** |
|
||||||
-0.6 |-+........:..........:..........:.......**.:..........:.....**...:+-|
|
| * * |
|
||||||
| : : : *: : ** : |
|
| * * |
|
||||||
-0.8 |-+........:..........:..........:..........**.........:..**......:+-|
|
-0.5 |-+ ** ** +-|
|
||||||
| + + + + *** +** + |
|
| *** *** |
|
||||||
-1 +--------------------------------------------------------------------+
|
| ******* |
|
||||||
0 1 2 3 4 5 6
|
| |
|
||||||
|
| + + + + + + + + + |
|
||||||
|
-1 +-------------------------------------------------------------+
|
||||||
|
0 1 2 3 4 5 6 7 8 9
|
||||||
\end{verbatim}
|
\end{verbatim}
|
||||||
|
|
||||||
Je pense que l'exemple est assez parlant.
|
Je pense que l'exemple est assez parlant.
|
||||||
@ -220,6 +250,23 @@ Quelle sont les différences entre \texttt{en\_US.UTF-8} et
|
|||||||
\texttt{C.UTF-8} ?
|
\texttt{C.UTF-8} ?
|
||||||
|
|
||||||
% ==============================================================
|
% ==============================================================
|
||||||
|
% https://wiki.fiat-tux.fr/books/d%C3%A9veloppement/page/ajouter-des-couleurs-a-ses-scripts-shell
|
||||||
|
|
||||||
|
\section{Écrire en couleur} \index{ANSI} \index{escape}
|
||||||
|
|
||||||
|
\begin{verbatim}
|
||||||
|
BLACK='\033[0;30m'
|
||||||
|
RED='\033[0;31m'
|
||||||
|
GREEN='\033[0;32m'
|
||||||
|
YELLOW='\033[0;33m'
|
||||||
|
BLUE='\033[0;34m'
|
||||||
|
PURPLE='\033[0;35m'
|
||||||
|
CYAN='\033[0;36m'
|
||||||
|
WHITE='\033[0;37m'
|
||||||
|
\end{verbatim}
|
||||||
|
|
||||||
|
% ==============================================================
|
||||||
|
|
||||||
\section{Questions à voir}
|
\section{Questions à voir}
|
||||||
|
|
||||||
\begin{itemize}
|
\begin{itemize}
|
||||||
|
Loading…
Reference in New Issue
Block a user