Correction tp3 programmation shell - systèmes d’exploitation

Télécharger PDF

Obtenir le pack complet des cours, TDs, examens sur Systèmes d’Exploitation!

Vous souhaitez maîtriser Systèmes d’Exploitation ? Ne cherchez plus, nous avons le pack bien choisi pour vous.

pack complet des cours, TDs, TPs et examens exercices sur Systèmes d’Exploitation

Accédez à une collection complète des supports de cours, des travaux dirigés (TDs) corrigés, TPs avec solution, examens...

Télécharger pack

Projet DVD-MIAGE 2010

TP n°3 : Programmation shell

CORRECTION

Travail à effectuer :

Solution : Voir corrigés du TD n°2.

Pour s'entraîner un peu plus ...

Solution :

Exercice A

#!/bin/bash

# syntaxe test-fichier nomFichier

# effectue des tests sur le fichier et affiche un compte-rendu.

acces=""

if [ "$#" = 0 ]then echo "Syntaxe d'appel : $0 nomFichier"

exit 1fi if [ ! -e "$1" ]then echo "Le fichier \"$1\" n'existe pas !"

exit 1fi if [ -d "$1" ]then echo "Le fichier \"$1\" est un répertoire"fi if [ -f "$1" ]then echo -n "Le fichier \"$1\" est un fichier ordinaire"

if [ -s "$1" ]then echo " qui n'est pas vide"else echo " qui est vide"fi fi

if [ -r "$1" ]then acces="$acces lecture"fi if [ -w "$1" ]then acces="$acces écriture"fi if [ -x "$1" ]then acces="$acces exécution"fi echo "\"$1\" est accessible par $USER en $acces"

exit 0

Systèmes d'exploitationA. Queudet

Projet DVD-MIAGE 2010

Exercice B

#on stocke les paramètres pour ne pas les perdre

nb_param=$#

nom_script=$0

#vérification du nb de paramètres

if [ $nb_param ne 1 ]then echo "Usage : $0 <fichier_resultat>"exit fi

param1=$1

#vérification de l'existence du fichier de sortie

#il faudrait aussi tester si le motif du fichier n'est pas "fichier*.txt"

if test -e $param1then echo "Le fichier de sortie $param1 existe"exit fi

#boucle de concaténation

for fic in `ls fichier*.txt` do

#concaténation

cat $fic >> $param1done Exercice C

if [ ! -d OLD ] ; then

if mkdir OLD ; then

echo La création du répertoire OLD a échoué ; exit 1

fi fi suffixe=‘date ’+#%Y-%m-%d’‘ for i in * ; do

if [ -f $i ] ; then

cp "$i" "OLD/$i$suffixe"

fi done Systèmes d'exploitationA. Queudet