Bash ne gère pas nativement les variables comme des nombres (2+2 donnera une erreur). Il faut passer par la commande \texttt{let}
Bash ne gère pas nativement les variables comme des nombres (par exemple, \og{}\texttt{2+2}\fg{} renverra une erreur). Il faut passer par la commande \texttt{let}.
On a vu depuis les derniers jours qu'une commande peut recevoir un ou plusieurs paramètres (exemple : \texttt{mv <source> <destination>}). Il en est de même pour les scripts bash.
On a vu cette semaine qu'une commande peut recevoir un ou plusieurs paramètres (exemple : \texttt{mv <source> <destination>}). Il en est de même pour les scripts Bash.
Comme pour les commandes, l'ordre des paramètres est {\bf primordial}
Comme pour les commandes, l'ordre des paramètres est {\bf primordial}!
\end{block}
\begin{block}{Accéder aux paramètres}
Lors de l'exécution, des variables sont automatiquement créées : \texttt{\$\#} contient le nombre de paramètres, \texttt{\$1} le premier, \texttt{\$2} le deuxième\ldots\texttt{\$9} le neuvième
Lors de l'exécution, des variables sont automatiquement créées : \texttt{\$\#} contient le nombre de paramètres, \texttt{\$1} le premier, \texttt{\$2} le deuxième~\ldotset \texttt{\$9} le neuvième.
@@ -231,35 +236,40 @@ Il y a 0 paramètres d'execution
Le premier paramètre est \Pause
\end{Verbatim}
\end{beamercolorbox}
\medskip
\begin{beamercolorbox}[rounded=true]{orangebox}
\enquote{Mais attends, je peux avoir que 9 paramètres ?}
\end{beamercolorbox}
\medskip
\begin{block}{}
Non, on peut en fait avoir plus de paramètres.
On en reparlera quand on saura utiliser les boucles, pour faire ça proprement
On en reparlera quand on saura utiliser les boucles, pour faire ça \textit{proprement}.
\end{block}
\end{frame}
\begin{frame}[fragile]{Les tableaux}{Créer et lire un tableau}
\begin{block}{Contexte}
En bash, on peut également déclarer des tableaux. Ce sont des variables un peu spéciales, qui contiennent plusieurs valeurs référencées par un {\bf index}
En Bash, on peut également déclarer des tableaux. Ce sont des variables un peu spéciales, qui contiennent plusieurs valeurs référencées par un {\bf index}.
\end{block}
\begin{block}{Déclarer un tableau}
Pour déclarer un tableau, on utilise la syntaxe \texttt{nom=(val0 val1 val3)}{\tiny\it (on peut évidement mettre plus de 3 valeurs)}
Pour déclarer un tableau, on utilise la syntaxe \texttt{nom=(val0 val1 val3)}\\
{\tiny On peut évidement mettre plus de 3 valeurs.}
\end{block}
\begin{block}{Accéder à une valeur}
Les valeurs stockées dans un tableau possèdent un \textbf{index} qui permet de les lire. Cet index \textbf{commence à 0}.
La syntaxe pour lire une valeur est \verb+${nom[index]}+. On peut également utiliser \verb+${nom[*]}+ pour afficher toutes les valeurs ayant un index numérique.
Les valeurs stockées dans un tableau possèdent un \textbf{index} qui permet d'y accéder individuellement. Cet index \textbf{commence à 0}.
La syntaxe pour lire une valeur est \verb+${nom[index]}+. On peut également utiliser \verb+${nom[*]}+ pour afficher toutes les valeurs associées à un index numérique.
\end{block}
\end{frame}
\begin{frame}[fragile]{Les tableaux}{Modifier un tableau}
\begin{block}{Ajouter ou modifier une valeur}
La syntaxe \texttt{nom[index]} permet également d'ajouter ou de modifier une valeur.
On peut alors créer la valeur correspondante, ou modifier celle dèjà présente, en écrivant \verb+nom[index]=valeur+
On peut alors créer la valeur correspondante, ou modifier celle dèjà présente, en écrivant \verb+nom[index]=valeur+.
\end{block}
\begin{exampleblock}{Quels index ?}
Les index ne sont pas forcément une valeur numérique (de toute façon, bash ne fait pas la distinction). Ils le seront uniquement dans le cas où on déclare le tableau avec \texttt{nom=(val val)}. Sinon, on peut mettre \textbf{ce qu'on veut}
\begin{exampleblock}{Quel genre d'index ?}
Les index ne sont pas forcément une valeur numérique (de toute façon, Bash ne fait pas la distinction). Ils le seront uniquement dans le cas où on déclare le tableau avec \texttt{nom=(val val)}. Sinon, on peut mettre \textbf{ce qu'on veut}, par exemple un mot !
\end{exampleblock}
\end{frame}
...
...
@@ -268,7 +278,6 @@ Le premier paramètre est \Pause