Commit 7fa6e9cf authored by Rémy Huet's avatar Rémy Huet 💻

Conditions fichiers

parent ccb152ca
Pipeline #33633 passed with stage
in 18 seconds
......@@ -283,3 +283,101 @@ De peu !
On note bien que \texttt{-lt} a vérifié que l'age était \textbf{strictement} inférieur tandis que \texttt{-ge} a vérifié qu'il était supérieur ou égal.
\end{alertblock}
\end{frame}
\begin{frame}[fragile]{Fichiers}{Les différents tests}
\begin{table}
\centering
\begin{tabular}{|c|c|}
\hline
\textbf{Test et syntaxe} & \textbf{Explications} \\
\hline\hline
\verb+-e $nom+ & Le fichier de nom \verb+$nom+ existe \\
\hline
\verb+-d $nom+ & \verb+$nom+ est un répertoire \\
\hline
\verb+-f $nom+ & \verb+$nom+ est un fichier \\
\hline
\verb+-L $nom+ & \verb+$nom+ est un lien \\
\hline
\verb+-r $nom+ & \verb+$nom+ est lisible \\
\hline
\verb+-w $nom+ & On peut écrire dans \verb+$nom+ \\
\hline
\verb+-x $nom+ & On peut exécuter \verb+$nom+ \\
\hline
\verb+$f1 -nt $f2+ & \verb+$f1+ est plus récent que \verb+$f2+ \\
\hline
\verb+$f1 -ot $f2+ & \verb+$f1+ est plus vieux que \verb+$f2+ \\
\hline
\end{tabular}
\caption{Les commandes pour les fichiers}
\label{tab:comp_fichiers}
\end{table}
\end{frame}
\begin{frame}[fragile]{Fichiers}{Exemple}
\begin{beamercolorbox}[rounded=true, shadow=true]{terminal}
\begin{Verbatim}
#!/bin/bash
mkdir -p dossier
if [ -d dossier ]
then
echo 'dossier est un répertoire'
touch dossier/test.sh
if [ -w dossier/test.sh ]
then
if [ -x dossier/test.sh ]
then
echo Fichier executable
else
echo 'rendre le fichier executable ...'
chmod a+x dossier/test.sh
fi
echo 'Écrire dans test.sh'
echo '#/bin/bash' > dossier/test.sh
echo 'ls /' >> dossier/test.sh
fi
echo 'Exécuter dossier/test.sh'
./dossier/test.sh
else
echo 'Erreur'
exit 1
fi
\end{Verbatim}
\end{beamercolorbox}
\end{frame}
\begin{frame}[fragile]
Résultat :
\begin{beamercolorbox}[rounded=true, shadow=true]{terminal}
\begin{Verbatim}
remy@hp-remy:~/scripts$ ./script.sh \Pause
dossier est un répertoire
Fichier executable
Écrire dans test.sh
Exécuter dossier/test.sh
bin boot cdrom core dev etc home initrd.img
initrd.img.old lib lib64 lost+found media mnt
opt proc root run sbin srv sys tmp usr var vmlinuz
\end{Verbatim}
\end{beamercolorbox} \Pause{}
Regardez bien ces lignes là :
\begin{beamercolorbox}[rounded=true, shadow=true]{terminal}
\begin{Verbatim}
if [ -w dossier/test.sh ]
then
if [ -x dossier/test.sh ]
then
echo Fichier executable
else
echo 'rendre le fichier executable ...'
chmod a+x dossier/test.sh
fi
[\ldots]
\end{Verbatim}
\end{beamercolorbox}\Pause{}
\begin{block}{}
On est obligés d'imbriquer les \texttt{if}? On pourrait pas inverser les tests pour éviter les \texttt{else} quand c'est justement le seul cas que l'on veut gérer ?
\end{block}
\end{frame}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment