script shell

3
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"

Upload: abdelmoujib-belmadani

Post on 22-Jul-2016

34 views

Category:

Documents


2 download

DESCRIPTION

exercice resolus

TRANSCRIPT

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);}

}