Vous êtes sur la page 1sur 2

Sup Galilée INFOA1

Année 2021-2022 Prog Shell

TP 2 - Scripts

L’ensemble du TP sera réalisé dans un terminal sous Linux (gnome-terminal) avec un shell
bash (par défaut).
Pour réaliser les scripts suivants et testez les. Pensez à utiliser l’aide en ligne si nécessaire
(manuel Unix).
1. Ecrire le script suivant (nommé script1.sh) :
#!/bin/bash

# mon premier script

echo "Bonjour tout le monde !"


echo "La date du jour est "
date
Exécutez le script
— de la manière suivante bash script1.sh
— après avoir positionné les droits d’exécution sur le fichier script1.sh
2. Soit le script suivant nommé test :
#!/bin/bash

echo "hello world!"


Après avoir mis les droits d’exécution sur le fichier, exécutez les deux commandes sui-
vantes :
test
./test
Expliquez les résultats obtenus.
3. Ecrire un script Shell qui pour un fichier donné en argument indique son type (fichier
régulier, répertoire, etc.)
4. Identifier les différentes variables de votre environnement. Ecrire un script qui affiche les
plus courantes.
NB : vous pouvez aussi identifier ces variables avec la commande env.
5. Ecrire un script qui indique si le nombre donné en argument (par l’utilisateur) est pair.
6. Ecrire un script qui indique si le nombre est indiqué par l’utilisateur de manière interactive
est pair.
7. Ecrire un script qui indique si l’année en argument (par l’utilisateur) est bissextile (avec
trois if et avec un if).
8. Ecrire un script qui affiche le contenu d’un fichier si celui-ci existe et possède l’extension
txt (de deux manières différentes pour le test d’existence, et pour l’identification de
l’extension).

1
9. Ecrire un script qui stocke dans un fichier, des nombres de 1 à 5 (un nombre par ligne).
10. Affichage de tous les répertoires présents dans un répertoire passé en argument (avec et
sans ls)
11. Affichage de tous les fichiers d’extension txt présent dans le répertoire $HOME et ses sous-
répertoires (sans utiliser la commande ls).
12. Ecrire le script echo_args.sh qui affiche la liste de ses paramètres,
sur une ligne chacun.
13. Ecrire le script Shell args qui affiche la liste de ses paramètres, séparés par des blancs,
puis indique si chaque paramètre est numérique.
14. Ecrire un script qui
— crée trois répertoires (ProgShell, LANGC, JAVA, puis dans chacun de ces répertoires,
un répertoire TP, puis dans chaque répertoire TP, dix répertoires nommés de TP1 à
TP10
On obtiendra l’arborescence suivante :
ProgShell/TP/TP1
ProgShell/TP/TP2
ProgShell/TP/TP3
...
LANGC/TP/TP1
LANGC/TP/TP2
LANGC/TP/TP3
...
JAVA/TP/TP1
JAVA/TP/TP2
JAVA/TP/TP3
Contraintes possibles :
— utilisation d’une seule boucle for
— un appel à mkdir
— puis pour chaque répertoire de l’arborescence ci-dessus, crée un fichier ls.txt conte-
nant la liste des sous-répertoires.
15. Ecrire un script qui demande un nom de fichier à un utilisateur, teste si le fichier existe
ou recherche le fichier dans l’arborescence /etc puis affiche les informations associées au
fichier (taille, date de dernière modification, etc.).
16. Reprendre le script script1.sh et modifiez le pour obtenir l’affichage suivant (avec la
date du jour) :
Bonjour tout le monde !
La date du jour est lundi 30 août 2021 (semaine 35)
Indication : L’affichage en français peut être obtenu en positionnant la variable d’envi-
ronnement LC_TIME de la manière suivante : LC_TIME=fr_FR.UTF-8

Vous aimerez peut-être aussi