Академический Документы
Профессиональный Документы
Культура Документы
Programmation Shell
Exercices:
Exercice N°1 :
Exercice N°2 :
Ecrivez un script qui affiche, pour tous les utilisateurs passés en arguments du script, le nom
de l’utilisateur, le répertoire de connexion et le shell.
Exercice N°3 :
Ecrivez un script qui enregistre dans un fichier les lignes saisies au clavier, et qui affiche le
nombre de lignes qui ont été enregistrées.
Exercice N°4 :
#more agenda
toto:23-11-71-43
titi:98-33-65-78
On peut réaliser cette tâche grâce a des commandes tels que : grep, tail , head ou sed
Exemple de suppression
# cat agenda
toto:23-11-71-43
titi:98-33-65-78
Exemple de modification
On peut utiliser la commande grep (vu précédemment) pour ce genre de tâche mais la
commande sed est adaptée à ce type d’opération. Pour plus d’informations faites man sed
# cat agenda
tata:98-33-65-78
Exercice N°5 :
Epreuve 1
Exercice 1 :
1. Lister 4 interpréteurs de commande du système Linux ;
2. A quoi sert la ligne suivante dans un script : #!/bin/bash
3. A quoi servent les éléments suivants : "$#", "$*" "$0"et "$@"
4. Que fait la commande suivante : var3=`ls –l`
5. Que fait la ligne de code suivante : id=`echo $ligne |cut -f3 -d:`
Exercice 2 :
1. Ecrire un script qui demande à l'utilisateur de saisir une note et qui affiche un message
en fonction de cette note :
2. Ecrire un script qui prend en paramètre ou en saisie le nom d'un fichier contenant le
nom des étudiants et leurs trois notes de l’UE Programmation Shell. Le script devra :
afficher les noms des étudiants, puis calculer et afficher la moyenne de chaque
étudiant. Voici comment se présente le fichier :
Virginie 12 9 14
Gaëlle 8 11 4
Stéphanie 9 12 1
Exercice 3 :
1. Ecrire un script qui vous propose le menu suivant :
1 - Vérifier l'existence d'un utilisateur
2 - Connaître l'UID d'un utilisateur
q - Quitter
Pour chaque choix, il devra réaliser l’opération demandé. L'utilisateur devra
être saisi, à l'aide d'une fonction. Son existence devra être vérifiée à l'aide d'une
autre fonction.
2. Ecrire un scipt qui extrait du fichier etc/passwd la liste des utilisateurs du groupe qu'on
lui passe en argument et dit s'ils sont connectés ou non.
Epreuve 2
Exercice 1 :
1. Que réalise les lignes de code suivantes : ${var:=texte} ; ${var[*]} ; test -d "$1" -a ! -L
"$1"
2. A quoi servent les variables suivantes : $PATH ; $LOGNAME ; $PWD ; $SHELL ; $$
et $?
3. Proposer une instruction permettant de changer les valeurs des variables "$1", "$2", …,
"$9"
4. Que réalise la ligne de code suivante : cut -f1,4 -d: /etc/passwd |grep ":$gid$" |cut -f1
-d: |sort
5. Ecrire un script qui vérifie si l'année courante est bissextile (divisible par 4 mais pas
par 100 ; ou divisible par 400).
Exercice 2 :
1. Ecrire un script qui affiche, pour tous les utilisateurs passés en arguments du script, le
nom de l’utilisateur, le répertoire de connexion et le shell.
2. Ecrire un script pour exploiter les données d’un fichier de notes crée au préalable
dans le même répertoire que le script. Ce fichier nommé notesInf36 se présente
comme ceci :
Jacque KAMDEM 12
Henrie JIOMEKONG 18
Marthe ZAMBO 2
Le script devra afficher les lignes dans l’ordre de mérite.
3. Ecrire un script qui calcule le nombre de fichiers standard, de sous-répertoires, et
d’exécutables d’un répertoire quelconque qui sera donné en paramètre. (ou bien saisis
en cas d’absence de paramètre).
Exercice 3 :
Créez la commande copier qui reçoit en argument deux noms de fichiers (la
source et la destination), ensuite affiche un message d’erreur si l’une des conditions
suivantes est réalisée :
a) Le nombre d’arguments est incorrect.
b) Le fichier source n’existe pas ou il n’est pas copiable (pas d’accès en
lecture).
c) Le fichier source n’est pas un fichier ordinaire.
d) Le fichier destination existe déjà.
e) Le répertoire de destination, que l’on peut connaître avec la commande
dirname, n’est pas accessible en écriture.
f) La copie a échoué.
g) Ecrire un script qui extrait du fichier etc/passwd la liste des utilisateurs du
groupe qu'on lui passe en argument et dit s'ils sont connectés ou non.