Vous êtes sur la page 1sur 3

RT3

TP 1

Exercice 1 :

1- En utilisant test, tester si le répertoire /tmp existe.


test -d /tmp ou [ -d /tmp ] (les espaces après [ et avant ] sont nécessaires)
2- Afficher le résultat du test.
echo $? affiche 0
3- Créer une variable VAR contenant la valeur 10.
VAR=10
4- Utiliser trois méthodes différentes pour tester si VAR est inférieure à 6.
(($VAR < 6)) ou test $VAR -lt 6 ou [ $VAR -lt 6 ] ou let var \<6
5- Afficher le résultat de ce test.
echo $? affiche une valeur différente de 0 car c’est une expression arithmétique et 10 n’est pas < à 6
6- Afficher la valeur de $?. Justifier sa valeur.
echo $? affiche 0 car il s’agit de la valeur de retour de la commande précédente (echo $ ?)
7- Tester, en utilisant les expressions arithmétiques, si VAR est comprise entre 3 et 20 puis afficher
la valeur de $?.
((3 < $VAR && $VAR < 20))
[ 3 –lt $VAR ] && [ $VAR –lt 20 ]
test 3 –lt $VAR && test $VAR –lt 20 (ou test 3 –lt $VAR -a $VAR –lt 20)
echo $? affiche 0
8- Tester, en utilisant les expressions arithmétiques, si la variable VAR est inférieure à 4 ou
multiple de 5.
(($VAR < 4 || $VAR % 5 == 0)) affiche 0
9- Changer la valeur de la variable VAR pour qu’elle soit égale en premier lieu à "10+10" ensuite à
30.
VAR=$VAR+10 ensuite ((VAR=$VAR+10)) ou let VAR=$VAR+10
((VAR=VAR+10)) = ((VAR=$VAR+10))
let VAR=VAR+10 = let VAR=$VAR+10
#VAR=VAR+10 donne VAR+10

Exercice 2 :
1- Définir un alias supprimer pour une commande de suppression forcée de fichiers.
alias supprimer='rm -f' # sans confirmation.
2- Définir un alias copier pour une commande de copie de fichiers forcée en mode verbeux.
alias copier='cp -fv' # sans confirmation en cas d’écrasement
3- Définir un alias lister pour une commande qui liste page par page le contenu (cachés ou non) du
répertoire de connexion.
alias lister='ls -la $HOME | less'
4- Définir un alias changer1 pour une commande qui permet de sauvegarder le nom du répertoire de
travail dans le fichier change sous le répertoire de connexion avant de changer du répertoire de
travail vers le répertoire /tmp.

Dorsaf SEBAI INSAT 2020/2021


RT3

alias changer1='pwd >> $HOME/change ; cd /tmp'


5- Refaire la question précédente avec une fonction nommée changer2.
function changer2
{ #obligatoire
pwd >> $HOME/change
cd /tmp #on spécifie /tmp
}
Lors de l’appel : changer2

6- Refaire la question précédente avec la possibilité d’indiquer des valeurs quelconques pour le
fichier change et le répertoire /tmp.
function changer #on peut mettre des parenthèses aussi : function changer()
{ #obligatoire
pwd >> $HOME/$1 ;
cd /$2 ;
}
Lors de l’appel : changer change /tmp
7- Afficher les alias et la fonction ainsi définis.
alias
declare –f changer # affiche la fonction avec son code
8- Tester les alias et la fonction crées.
supprimer f
copier f f1
lister
changer
changer change /tmp
9- Supprimer les alias et la fonction crées.
unalias supprimer
unalias copier
unalias lister
unalias changer
ou unalias supprimer copier lister changer
unset changer #declare –F affiche les noms des fonctions définies pour s’assurer de la suppression
de la fonction

Exercice 3 :
1- Saisir le message " Atelier Linux Script et Shell " et initialiser dynamiquement les variables de
position.
read message
set $message
2- Afficher le contenu des variables de position obtenues ainsi que leur nombre.
echo "Paramètres : 1=$1 2=$2 3=$3 4=$4 5=$5"
echo "Nombre de paramètres : $#"
1=Atelier 2=Linux 3=Script 4=et 5=Shell
Nombre de paramètres : 5
var="linux ou et" ; set $var; for i in $@ ; do echo $i ; done
3- Décaler ces variables de deux positions.
shift 2
4- Afficher à nouveau le contenu des variables de position et leur nombre.
echo "Paramètres : 1=$1 2=$2 3=$3 4=$4 5=$5"
Dorsaf SEBAI INSAT 2020/2021
RT3

echo "Nombre de paramètres : $#"


1=Script 2=et 3=Shell
Nombre de paramètres : 3
5- Justifier cet affichage.
$1 sera $(1+2) donc $3 …

Exercice 4 :

Ecrire le script Ex4 qui affiche selon le nombre de ses arguments l’un des messages suivants : " un
seul argument ", " plusieurs arguments" et " aucun argument ".

if (($# == 1))
then #then dans une ligne à part ou if condition; then
echo "un seul argument"
elif (($# > 1)); then
echo "plusieurs arguments"
else
echo "aucun argument"
fi

Pour l’exécution :

Dorsaf SEBAI INSAT 2020/2021

Vous aimerez peut-être aussi