Vous êtes sur la page 1sur 10

Comme la commande ps fournit un pourcentage décimal et que nous n’avons vu que de l’arithmétique entière, on

se contentera d’une approximation en supprimant les décimales.

#!/bin/bash
MAX=0
for i in `ps aux | tail +2 | cut -f1 -d' ' | sort | uniq`
do
SOMCPU=0
for CPU in `ps aux | tail +2 | grep $i | cut -c16-19`
do
CPU=${CPU%.*}
SOMCPU=$(( SOMCPU + CPU ))
done
if [ $SOMCPU -gt $MAX ]
then
MAX=$SOMCPU
MAXUSER=$i
fi
done

echo "$MAXUSER utilise environ $MAX pour cent du CPU"


2 :
#
echo "ce programme permet de fair une chaine de caracter "
read chaine
n=${#chaine}
for (( i=1 ; i<=$n ;i++ ))
do
echo "${chaine:0:$i}"
done
3:# *********c'est un bash pour faires le nombre a la puisance*********
echo "entrer le nombre : "
read n
echo "entrer la puisance : "
read b
for (( i=1 ; i<=$n ; i++ ))
do
for (( j=0 ; j<=$b ; j++ ))
do
let p=$[($i*$j)]
let m=$p*$j
done
echo "le nombre est $m "
done
4 :Cette programme comme une fonction contienn plusieur scripts .
# ******tout les tp*****
function somme() {
echo "entrer le 1er nombre"
read n1
echo "entrer le 2eme nombre"
read n2
let somme=$n1+$n2
echo " la somme de $n1+$n2 = $somme"
return $somme
}
function multi() {
echo "entrer le 1er nombre"
read n1
echo "entrer le 2eme nombre"
read n2
let multi=$n1*$n2
echo "la multiplication de $n1*$n2 =$multi"
return $multi
}
function sou() {
echo "entrer les deux nombres"
read n1
read n2
let sou=$n1-$n2
echo "la soustraction de $n1-$n2 =$sou"
return $sou
}
function division() {
echo "entrer les deux nombres "
read n1
read n2
let division=$n1/$n2
let r=$division%$n2
echo "la division de $n1 sur $n2 =$r"
return $division
}
function tri() {
echo "*****tri de trois nombres*****"
echo "entrer le 1er nombre"
read n1
echo "entrer le 2eme nombre"
read n2
echo "entrer le 3eme nombre"
read n3
if [ $n1 -gt $n2 ]; then
a=$n1
n1=$n2
n2=$a
fi
if [ $n1 -gt $n3 ]; then
b=$n1
n1=$n3
n3=$b
fi
if [ $n2 -gt $n3 ]; then
c=$n2
n2=$n3
n3=$c
echo "le tri de ce deux nombres est $n1 ; $n2 ; $n3 "
fi
}
function pair() {
echo "entrer le nombre"
r=2
let d=$n%$r
if [ $d -eq 0 ]; then
echo "el nombre $n pair "
else
echo "le nombre $n est impair"
fi
}
function praimair() {
echo "*****les nombres praimaires*****"
echo "entrer le nombre"
read n
r=2
let d=$n%$r
if [ $d -ne 0 ]; then
for (( i=2 ; i<n ; i++ ))
do
let d=$n%$i
done
echo "le nombre $n est praimair "
else
echo "le nombre $n est non praimair "
fi
}
function pgcd-ppcm() {
echo "entrer le 1er nombre"
read n1
N1=$n1
echo "entrer le 2eme nombre"
read n2
N2=$n2
let rest=$n1%$n2
while [ $rest -ne 0 ] ;do
n1=$n2
n2=$rest
let rest=$n1%$n2
done
echo "le pgcd de $n1 et $n2 est =$n2"
let d=$N1/$n2
let m=$d*$N2
echo "le ppcm de $n1 et $n2 est =$m"
}
function chaine() {
echo "enter la chaine de caractere"
read chaine
f=${#chaine}
for (( i=1 ; i<=$f ; i++ ))
do
echo "${chaine:0:$i}"
done
}
function parfait() {
echo "*****les nombres parfait*****"
for (( i=1 ; i<=1000 ; i++ ))
do
n=0
for (( j=1 ; j<=i/2 ; j++ ))
do
let r=$i%$j
if [ $r -eq 0 ]; then
let n=$n+$j
fi
done
if [ $i -eq $n ]; then
echo "$i est parfait"
fi
done
}
function etoiles() {
echo "*****les etoiles*****"
echo "entrer le nombre"
read n
for (( i=1 ; i<=$n ; i++ ))
do
for (( j=i ; j<=$n ; j++ ))
do
echo -n "*"
done
echo ""
done
}
select CH in SOMME MULTI SOUSTRACTION DIVISION TRI PAIR PRAIMAIR PGCD-PPCM
CHAINE PARFAIT ETOILES sortir;do
case $CH in
("SOMME") somme ;;
("MULTI") multi ;;
("SOUSTRACTION") sou ;;
("DIVISION") division ;;
("TRI") tri ;;
("PAIR") pair ;;
("PRAIMAIR") praimair ;;
("PGCD-PPCM") pgcd-ppcm ;;
("CHAINE") chaine ;;
("PARFAIT") parfait ;;
("ETOILES") etoiles ;;
("sortir") break ;;
esac
done
5:Ce script permet de fair tableau et trie ce tableau a lordr
alphabetique(voila le texte : MA001 :F:Marassi:Karima:20/10/1980:Bien
MA002 :M:Baraka:Abdellah:23/05/1980:Tres Bien
MA003 :M:Karoumi:Samir:04/09/1981:Tres bien
MA004 :M:Ahmadi:Mohamed:13/06/1982:Assez Bien
MA005 :M:Bouidi:Yassine:07/05/1982:Passable
MA006 :F:Darki:Khadija:09/03/1981:Assez Bien
MA007 :F:Sellami:Najat:08/09/1982:Bien
MA008 :M:Mabrouk:Karim:05/06/1981:Assez Bien
MA009 :F:Abdou:Siham:23/08/1980:Passable
MA010 :M:Charki:Mohamed:01/01/1982:Bien)
#
declare -a nom sexe mention
nb=$(cat ./Nom.txt | wc -l)
for (( i=1 ; i<=$nb ; i++ ))
do
mention[i]=$(cut -d: -f6 ./Nom.txt | head -$i | tail -1)
done
for (( i=1 ; i<=$nb ; i++ ))
do
nom[i]=$(cut -d: -f3 ./Nom.txt | head -$i | tail -1)
done
for (( i=1 ; i<=$nb ; i++ ))
do
sexe[i]=$(cut -d: -f2 ./Nom.txt | head -$i | tail -1 )
done
for (( i=1 ; i<=$nb ; i++ ))
do
nom[i]=${nom[i]}" "${sexe[i]}" "${mention[i]}
done
echo "**************Liste des stagiaires avant le tri*****************"
echo "Nom Sexe Mention"
echo "--- ---- -------"
for (( i=1 ; i<=$nb ; i++ ))
do
echo "${nom[i]}"
done
for (( i=1 ; i<=$nb ; i++ ))
do
for (( j=$nb-1 ; j>=i ; j-- ))
do
if [[ ${nom[j]}>${nom[j+1]} ]]; then
t=${nom[j]}
nom[j]=${nom[j+1]}
nom[j+1]=$t
fi
done
done
echo "**************Liste des stagiaires apres le tri***************"
echo "Nom Sexe Mention"
echo "--- ---- -------"
for ((i=1 ; i<=$nb ; i++ ))
do
echo "${nom[i]}"
done
echo ""
echo ""
echo ""
echo ""
6: cette programme permet de repete bonjour n fois
#c'est le 5eme bash
echo "entrer le nombre :"
read n
for (( i=1; i<=$n ;i++ ))
do
echo "bonjour"
done
7:scripts permetcalculer le PGCD et PPCM(moda3af mochtarak akbar wa as4ar)
#batch de calculer le PGCD
echo -n "entrer le n1 : "
read n1
echo -n "entrer le n2 : "
read n2
let d=$n1%$n2
N1=$n1
N2=$n2
while [ $d -ne 0 ]; do
n1=$n2
n2=$d
let d=$n1%$n2
done
echo "le PGCD de $n1 et $n2 est : $n2"
let ppcm=$N1%$n2*$N2
echo "le PPCM de $n1 et $n2 est : $ppcm"
8 :# chaine da caractere
echo -n "entrer la chaine de caractere :"
read chaine
ln=${#chaine}
for (( i=0 ; i<=$ln ; i++ ))
do
echo "${chaine:0:$i}"
done
9:# c'est mon premier bash qui affiche le utilisateur et la date
echo "bonjour tout le monde"
echo "mon nom d'utilisateur est:$USER"
echo "mon repertiore de base est:$HOME"
echo -n "nous sommes le :"
date
10:#c'est mon 2eme bash permet de calculer la factoriel
echo -n "entrer le 1er nombre :"
read n1
fac=1
for (( i=1 ; i<=$n ; i++ ))
do
let fac=$fac*$i
done
echo "le factoriel est : $fac"
11 :ce scripts permet de ajouter un utilisateur
function ajouter() {
#local nam=0
#local group=0
#local repertoire=0
#echo "entrez le nom d'utilisateur"
#read nam
echo "entrez le nom de group "
read group
echo "entrez le nom de repertoire personnel"
read repertoire
useradd -g $group -d $repertoire $n
echo "voila l'utilisateur est crée "
return 0
}

select ch in a q ;do
case $ch in
("q") break ;;
("a") ajouter ;;
esac
done
12:#*****bash*****
echo -n "entrer le n1 : "
read N1
echo "entrer le n2 : "
read N2
function som( ) {
local n1=$N1
local n2=$N2
let d=$n1+$n2
echo "la somme est : $d"
return $d
}
function multip( ) {
local n1=$N1
local n2=$N2
let m=$n1*$n2
echo "le produit est : $m"
return $m
}
select ch in somme multp Quitter ;do
case $ch in
("somme") som $N1 $N2 ;;
("multp") multip $N1 $N2 ;;
("Quitter") break ;;
esac
done
13: Permet de faire un triangle de l’étoile
# C’est 5eme bash
echo "entre le nombre"
read n
for (( i=1 ; i<=$n ; i++ ))
do
for (( j=0 ; j<=$n ; j++ ))
do
echo -n "*"
done
echo ""
done
14:#afficher le nombre paire ou impaire
echo -n "entrer le nombre :"
read nombre
let m=$nombre%2
if [$m -eq 0] ;then
echo "le nombre et paire"
else
echo "le nombre et impaire"
fi
15: Permet de faire une comparaison
# c'est mon batch de test
echo -n "entrer le 1er nbre : "
read nbre1
echo -n "entrer le 2eme nbre : "
read nbre2
if [$nbre1 -gt $nbre2];then
echo "$nbre1 est superieur de $nbre2"
else
echo "$nbre2 est inferieur de $nbre1"
fi
16:# trier le tableau
declare -i n1 n2 n3 t
echo -n "entrer le n1"
read n1
echo -n "entrer le n2"
read n2
echo -n "entrer le n3"
read n3
echo "avant le tri n1=$n1 n2=$n2 n3=$n3"
if [ $n1 -gt $n2 ]; then
t=$n1
n1=$n2
n2=$t
fi
if [ $n1 -gt $n3 ]; then
t=$n1
n1=$n3
n3=$t
fi
if [ $n2 -gt $n3 ]; then
t=$n2
n2=$n3
n3=$t
fi
echo "aprés le tri n1=$n1 n2=$n2 n3=$n3"
17 :# permet de faire une permitation des nombres
echo "entrer le 1er nombre et le 2eme nombre"
read n1 n2
echo "avant permitation n1=$n1 et n2=$n2"
n3=$n1
n1=$n2
n2=$n3
echo "apres permitation n1=$n1 et n2=$n2"
18 :# calcul PGCD
echo -n "entrer le 1er nombre :"
read n1
echo -n "entrer le 2eme nombre :"
read n2
let d=$n1%$n2
N1=$n1
N2=$n2
while [ $d -ne 0 ]; do
n1=$n2
n2=$d
let d=$n1%$n2
done
echo " PGCD est : $n2"
19 :# calcul PPCM
echo -n "entrer 1er nombre"
read n1
echo -n "entrer 2eme nombre"
read n2
let d=$n1%$n2
echo "le modulo de $n1 et $n2 est : $d"
N1=$n1
N2=$n2
while [ $d -ne 0 ]; do
n1=$n2
n2=$d
let d=$n1%$n2
let ppcm=($N1/$N2)*$n2
done
echo "le ppcm de $N1 et $N2 est: $ppcm"
20 : Ce script permet de trie 3 nombre aléatoirement
# tri 3 nombres
n1=$((RANDOM%100))
n2=$((RANDOM%100))
n3=$((RANDOM%100))
echo " Avant le tri : n1=$n1 n2=$n2 n3=$n3"
if [ $n1 -gt $n2 ]; then
a=$n1
n1=$n2
n2=$a
fi
if [ $n1 -gt $n3 ]; then
b=$n1
n1=$n3
n3=$b
fi
if [ $n2 -gt $n3 ]; then
c=$n2
n2=$n3
n3=$c
fi
echo "Aprés le tri : n1=$n1 n2=$n2 n3=$n3 "
21:Script permet de trie un tableau aléatoirement
declare -ai tab
echo "entrez la valeur de m "
read m
for ((i=1;i<=$m;i++))
do
tab[i]=$((RANDOM%100))
done
echo "*************avant le tri : "
for (( i=1;i<=$m;i++))
do
echo -n "tab[$i]=${tab[i]}| "
done
echo " "
echo "************apres le tri : "
for ((i=1;i<=$m;i++))
do
for ((j=$i;j<=$m-1;j++))
do
if [ ${tab[j]} -gt ${tab[j+1]} ];then
a=${tab[j]}
tab[j]=${tab[j+1]}
tab[j+1]=$a
fi
done
done
for ((i=1;i<=$m;i++))
do
echo "(${tab[i]})"
done
22:# trier des nombre
echo "entrer 1er nombre"
read n1
echo "entrer 2eme nombre"
read n2
if [ $n1 -gt $n2 ]; then
echo " n1=$n1 et n2=$n2 "
else
g3=$n1
n1=$n2
n2=$g3
echo "n1=$n1 et n2=$n2"
fi
23:# script pour donner les nombre parfait
echo "*****les nombres parfait*****"
for (( i=1 ; i<=1000 ; i++ ))
do
n=0
for (( j=1 ; j<=i/2 ; j++ ))
do
let r=$i%$j
if [ $r -eq 0 ]; then
let n=$n+$j
fi
done
if [ $i -eq $n ]; then
echo "$i est parfait"
fi
done