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