script shell
DESCRIPTION
exercice resolusTRANSCRIPT
Ecrire un script shell qui affiche ces trois arguments
entiers positifs dans l’ordre croissant.
for i in $*
do
if [ $1 -lt $2 -a $1 -lt $3 ]
then
if [ $2 -lt $3 ]
then
echo "$1 $2 $3"
else
echo "$1 $3 $2"
fi
elif [ $2 -lt $1 -a $2 -lt $3 ]
then
if [ $1 -lt $3 ]
then
echo "$2 $1 $3"
else
echo "$2 $1 $3"
fi
else
if [ $1 -lt $2 ]
then
echo "$3 $1 $2"
else
echo "$3 $2 $1"
fi
fi
done
Ecrire un script shell qui supprime les fichiers de votre
répertoire dont le nombre de lignes est supérieur à 100.
for i in `ls`
do
if [ -f $i ]
then
wc -l $i >tmp
read a <tmp
echo "la taille de $i est $a"
if [ $a -gt 100 ]
then
rm $i
fi
else
echo "$i est un repertoire"
fi
done
Nombre des fichiers et de sous répertoire de votre
répertoire courant
nd=0
nf=0
for i in `ls`
do
if [ -d $i ]
then
nd=`expr $nd + 1`
elif [ -f $i ]
then
nf=`èxpr $nf + 1`
fi
done
echo "le nombre des fichiers est $nf"
echo "le nombre des repertoires est $nd"
Ecrire un script shell qui change les droits d’accès des
fichiers vides de votre répertoire pour l’utilisateur en
rwx.
for i in `ls`
do
if [ -f $i -a !-s $i]
then
chmod 764 $i
echo "le changement est bien fait vérifier ici"
ls -l $i
fi
done
Ecrire un script shell qui calcule la moyenne de ces
arguments entiers positifs.
some=0
for i in $*
do
some=`expr $some + $i`
done
moy=`expr $some / $#`
echo "la moyenne est $moy"
Ecrire uns script shell qui supprime les fichiers non vides
de votre répertoire courant.
for i in `ls`
do
if [ -f $i ]
then
if [ -s $i ]
then
rm $i
fi
else
echo "$i est un repertoire"
fi
done
Ecrire un script shell qui affiche le jour correspondant à
son numéro dans la semaine entré comme argument (1
pour Lundi,…., 7 pour Dimanche) Le script doit aviser
l’utilisateur si le numéro ne correspond à aucun jour.
if [ $# -eq 0 ]
then
echo "entrer un nombre"
phrase="c'est le"
read day
else
phrase="c'est le"
day=$1
fi
case $day in
1)jour=Lundi;;
2)jour=Mardi;;
3)jour=Mercredi;;
4)jour=Jeudi;;
5)jour=Vendredi;;
6)jour=Samedi;;
7)jour=Dimanche;;
esac
echo $phrase $jour
Ecrire un script shell qui calcule P=XN+YN avec X, Y et N
entiers positifs entrés comme arguments du script.
x=1
py=1
i=1
while [ $3 -ge $i ]
do
px=`expr $px \* $1`
py=`expr $py \* $2`
i=`expr $i + 1`
done
p=`expr $px + $py`
echo "$1^$3+$2^$3=$p"
Ecrire un programme en langage C qui permet de
changer les droits d’accès pour le groupe en rwx d’un
fichier F entré comme argument du programme et
d’afficher la phrase « Le changement est bien fait »
#include..
#...
#...
main()
{
x=fork();
y=for();
if(x>0){wait(NULL);
print("le changement est bien fait");
if(y>0){
execl("/bin/date","date",NULL);
}
}
if(x==0){
execl("/bin/chmod o=r-x $1","chmod","o=r-
x","$1",NULL);
}
}:
Créer un processus qui crée un fils. Le père affiche sur
écran la phrase « Je suis le père». Affiche le PID de son
fils et le fils affiche la phrase « je suis le fils ».
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/types.h>
main()
{
int x;
x=fork();
if(x<0) {
printf("erreur \n");exit(0);}
if(x>0)
{
printf("je suis le père \n");
printf("\n \n");
printf("le pid de mon fils est : %d ",x);
printf("\n \n");
}
else printf("je suis le fils \n");
}
Modification de programme remplacé la 2eme ligne
par commande ls
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/types.h>
main()
{
printf("unix est un système multitaches \n\n");
execl("/bin/ls","ls","-l",NULL);
printf("unix est un système multi-utilisateur\n");
}
Affiche « commande executé après l’execution de la
commande ls
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/types.h>
main()
{
int x;
x=fork();
if(x>0)
{
wait(NULL);
printf("commande éxecutée \n");
}
else {execl("./echos","echos","moi","btissam",NULL);}
}