Table des matières

Rappels et premiers scripts


Durée

2 heures


Le but de ce TP est d'illustrer les principes vus en cours et en TD au travers d'un certains nombre d'exercices. Vous travaillerez dans un répertoire de votre compte nommé se1/tp-introduction.

Pour mémoire un Shell-Script est un fichier texte qui est exécutable (i.e. dont les droits sont correctement positionnés) Ce fichier texte est une succession de commandes bash - une commande par ligne - qui peuvent s'exécuter par lots. Par convention, la première ligne d'un Shell-Script sera : #!/bin/bash. Cette ligne s'appelle le shebang et spécifie, pour certains systèmes d'exploitation, l'interpréteur qui doit exécuter le code se trouvant en dessous. Vous retrouverez cette technique dans de nombreux langages tels que Perl, Python, etc.

Ainsi pour répondre à la question :

tel que l'on obtienne :

Exemple:
$> ./hello.sh
bonjour
$> 
#!/bin/bash
echo 'bonjour'

Q.1 - Quelques manipulations

Avec l'ensemble de ces commandes vous venez d'apprendre différentes façons d'affecter une variable bash et d'accéder à son contenu.


Q.2 - manipulation d'un paramètre

Exemple:
$> ./check-args.sh
vous n\'avez pas passé de paramètre !
$> ./check-args.sh fsdfdf
fsdfdf n\'existe pas ou n\'est pas un fichier régulier
$> ./check-args.sh /etc/hosts
/etc/hosts existe, c\'est un fichier régulier
$> 

Q.3 - Manipulation de plusieurs paramètres

Exemple:
$> ./check-multiple-args.sh
vous n\'avez pas passé de paramètre !
$> ./check-multiple-args.sh fsdfdf /etc/hosts check-args.sh
fsdfdf n\'existe pas ou n\'est pas un fichier régulier
/etc/hosts existe, c\'est un fichier régulier
check-args.sh existe, c\'est un fichier régulier
$> 

Q.4 - Manipulation des paramètres ayant une nature numérique


Q.5 - Instructions répétitives


Q.6 - Récapitulatif des bases

         #!/bin/sh
 
         ## --- a completer : check des parametres
 
         ## --- a compléter : réaliser l'affectation de la variable 'l' a la valeur
         ## --- correspondant au nombre de lignes contenues dans le fichier passé en paramètre
 
         echo "nombre de ligne dans $1 : $l"