Partage
  • Partager sur Facebook
  • Partager sur Twitter

Exercices Bash

venez vous entraîner !

9 décembre 2009 à 20:43:09

Bonjour.

Je propose un topic d'entraînement au Bash pour tout les niveaux. Je suis loin (et surement c'est peu dire) d'être le meilleur avec ce langage, et nos niveaux sont différents : certains sont expert, d'autres se débrouillent, d'autres débutent et d'autres n'y connaissent rien. C'est l'occasion de progresser, d'apprendre et de partager ces connaissances.

Les règles :


  • On indique le numéro de l'exercice quand on poste une solution.
  • Les solutions doivent être postées avec ce zcode : <secret><code type="bash"></code></secret>
  • On peut proposer des exercices de tout niveaux en suivant la numérotation (en éditant si-besoin) et en indiquant à peu près le niveau de difficulté (débutant, habitué, confirmé ou expert).
  • On peut commenter certains codes, certaines solution, etc ...
  • On peut poster sa solution dans un autre langage de script que la Bash, compatible Unix-likes (évitons le PHP, tolérons plutôt le Ksh, le Zsh, le Csh, le Tcsh, ... à la limite le Perl). Néanmoins il est préférable de poster une solution Bash/Sh.

La liste des exos :


Bon je commence avec quelques exos :

Niveau débutant :


Exercice 1 : les notes
Exercice 2 : les notes, le retour
Exercice 8 : <math>\(a^a\)</math>

Niveau habitué :


Exercice 3 : les notes, encore et toujours ...
Exercice 4 : TestUser
Exercice 5 : la calculatrice
Exercice 6 : La factorielle
Exercice 7 : Les fichiers
Exercice 11 : Faites votre propre version passwd

Niveau Confirmé :


Exercice 9 : Les notes, pour changer ...
Exercice 10 : Liste d'utilisateurs
Exercice 12 : Convertisseur décimale/binaire

Quelques exercices (1 à 6) :


Exercices 1 : les notes

débutant


Écrire un script qui demande à l'utilisateur de saisir une note et qui affiche un message en fonction de cette note :

  • "très bien" si la note est entre 16 et 20
  • "bien" lorsqu'elle est entre 14 et 16
  • "assez bien" si la note est entre 12 et 14
  • "moyen" si la note est entre 10 et 12
  • "insuffisant" si la note est inférieur à 10

Solution :
#!/bin/bash

echo "Entrez votre note :"
read note

if [ $note -ge 16 ]
then
	echo "très bien"
elif [ $note -ge 14 ]
then
	echo "bien"
elif [ $note -ge 12 ]
then
	echo "assez bien"
elif [ $note -ge 10 ]
then
	echo "moyen"
else
	echo "insuffisant"
fi


Exercice 2 : les notes, le retour

débutant


Reprenez l'exercice 1 et faites en sorte que le programme se répète tant que l'utilisateur n'aie pas saisie une note négative ou q (pour quitter).

Le script doit calculez le nombre de notes de saisies et en faire la moyenne tout à la fin.

Solution :
#!/bin/bash

note=0
moyenne=0
i=0

until [ $note -lt 0 ]
do
	echo "Entrez votre note (q pour quitter) :"
	read note
	if [ $note = "q" ]
	then
		note=-1
		echo "au revoir !"
	elif [ $note -ge 16 ]
	then
		echo "très bien"
	elif [ $note -ge 14 ]
	then
		echo "bien"
	elif [ $note -ge 12 ]
	then
		echo "assez bien"
	elif [ $note -ge 10 ]
	then
		echo "moyen"
	elif [ $note -ge 0 ]
	then
		echo "insuffisant"
	else
		echo "au revoir !"
	fi
	
	if [ $note -ge 0 ]
	then
		let moyenne=$moyenne+$note
		let i=$i+1
	fi
done

if [ $i -le 0 ]
then
	let i=1
fi

let moyenne=$moyenne/$i
echo "La moyenne est de $moyenne ($i notes)"


Exercice 3 : les notes, encore et toujours ...

habitué


Reprenez uniquement le code de l'exercice 1. La note peut cette fois être donnée en paramètre ou bien être saisie si elle n'a pas été trouvée en paramètre. La comparaison de la note devra être faite dans une fonction "appreciation".

Solution :
#!/bin/bash	

appreciation ()
{
	if [ $note -ge 16 ]
then
	echo "très bien"
elif [ $note -ge 14 ]
then
	echo "bien"
elif [ $note -ge 12 ]
then
	echo "assez bien"
elif [ $note -ge 10 ]
then
	echo "moyen"
else
	echo "insuffisant"
fi
}

# programma principale
clear
if [ $# -ne 0 ]
then
	note=$1
else
	echo "Saisir une note"
	read note
fi
appreciation


Exercice 4 : TestUser

habitué


Faites un script qui vous propose le menu suivant :

Citation

1 - Vérifier l'existence d'un utilisateur
2 - Connaître l'uid d'un utilisateur
q - Quitter



L'utilisateur doit être saisis, à l'aide d'une fonction. Son existance doit être vérifiée à l'aide d'une autre fonction.

Solution :
#!/bin/bash

function pause 
{
	echo "Appuyez sur ENTER pour continuer"
	read
}

function saisirUser
{
	echo "Saisir l'utilisateur"
	read util
}

function verifyUser
{
	if grep "^$util:" /etc/passwd > /dev/null
	then
		echo "L'utilisateur existe"
	else
		echo "L'utilisateur n'existe pas"
	fi
	pause	
}

rep=1
while [ $rep -eq 1 ]
do
	clear
	printf "menu :\n\n"
	echo "1. vérifier l'existance d'un utilisateur"
	echo "2. Connaitre l'uid d'un utilisateur"
	echo -e "3. Quitter\n"
	read choix
	case $choix in
		1) 
			saisirUser
		   	verifyUser ;;

		2) 	
			saisirUser
			id $util
			pause ;;

		q) 
			echo "Au revoir"
			pause
			rep=0 ;;
		*)
			echo "erreur de saisie ..." 
                        pause ;;
	esac
done


Exercice 5 : la calculatrice

habitué


Faire un script dans lequel deux nombres opérandes et un signe opérateur (+-*/) devront être donnés en paramètres, ou saisis en cas d'absence ... le script doit réaliser l'opération souhaitée.

Exemple :

[ ~] ./calculette.sh 7 + 4
Le résultat est : 11


Le calcul doit être fait à l'aide d'une fonction calcul.

Solution :
#!/bin/bash

function saisir
{
	printf "Saisir le premier nombre, puis le signe de l'opération puis le deuxième nombre :\n\n"
	read nb1
	read s
	read nb2
}

function calcul
{
	case $s in
		"+") let result=$nb1+$nb2 ;;
		"-") let result=$nb1-$nb2 ;;
		"*") let result=$nb1*$nb2 ;;
		"/") let result=$nb1/$nb2 ;;
		*) 
			let result=0
			echo -e "Erreur de saisie !\nLe resultat faut ...";;
	esac
}

calcul2 ()
{
	let result=$nb1$s$nb2
}
			
if [ $# -eq 3 ]
then
	nb1=$1 ; s=$2 ; nb2=$3
else
	saisir
fi
calcul
echo "Le résultat est $result"
calcul2
echo "Calculé d'une autre façon : $result"


Exercice 6 : La factorielle

habitué


Faites un programme qui permette de calculer et d'afficher la factorielle d'un nombre donné en paramètre ou saisis en cas d'absence de paramètres.

Solution:


Merci de votre participation :)
  • Partager sur Facebook
  • Partager sur Twitter
9 décembre 2009 à 21:13:03

Bonne idée ;)

L'exercice 6 je l'ai étudié en C la semaine dernière xD
  • Partager sur Facebook
  • Partager sur Twitter
9 décembre 2009 à 22:30:46

J'ai finit de rajouter les solutions ...

Citation : Preko

L'exercice 6 je l'ai étudié en C la semaine dernière xD



Mouais, c'est un exercice courant, je l'ai tiré d'un vieil exo de Java ...

Exercice 7 : Les fichiers

habitué


Codez un script qui calcul le nombre de fichiers standard, de sous-répertoires, et d'exécutables d'un répertoire quelconque qui sera donné en paramètre (ou saisis en cas d'absence du paramètre).

Solution :
#!/bin/bash

j=0
k=0
l=0

if [ $# -eq 0 ]
then
	echo "Saisir le répertoire"
	read rep
else
	rep=$1
fi

cd $rep

for i in `ls`
do
	if [ -d $i ]
	then
		echo $i
		let j=$j+1
	fi
	if [ -f $i ]
	then
		echo $i
		let k=$k+1
	fi
	if [ -x $i ]
	then
		echo $i
		let l=$l+1
	fi
done
echo "Il y a $j répertoires, $k fichiers et $l exécutables dans $rep"
  • Partager sur Facebook
  • Partager sur Twitter
10 décembre 2009 à 20:38:23

Päs mal :)
Par contre, je pense qu'il serait mieux de mettre tous les exercices dans le premier post...
  • Partager sur Facebook
  • Partager sur Twitter
11 décembre 2009 à 5:18:26

Salut.

Citation : xavierm02

Par contre, je pense qu'il serait mieux de mettre tous les exercices dans le premier post...



Euh, ça ferait, AMHA un post bien surchargé à la fin difficile à éditer ... si on suit bien la numérotation des exercices, ça devrait le faire.

Exercice 8 : <math>\(a^a\)</math>

débutant


Écrire un script qui prend un nombre en saisie élève ce nombre à sa propre puissance.

Exemple :

[ ~] ./NomDuScript.sh
Saisir une valeur :
4
2^2 = 4


C'est un peu le même principe que la factorielle mais cette fois, l'usage de la boucle for est imposé.

Pour les utilisateurs habitués : la valeur doit être prise en paramètre (ou en saisie en cas d'absence du paramètre). Le calcul doit se faire à l'aide d'une fonction opération.

Solution 1 (débutant) :
#!/bin/bash
echo "Saisir une valeur"
read value
result=1
for (( i=0 ; i<$value ; i++ ))
do
	let result=$result*$value 
done
echo "$value^$value = $result"


Solution 2 (habitué) :
#!/bin/bash

operation ()
{
	result=1
	for (( i=0 ; i<$value ; i++ ))
	do
		let result=$result*$value 
	done
	echo "$value^$value = $result"
}

if [ $# -eq 0 ]
then
	echo "Saisir une valeur"
	read value
else
	value=$1
fi
operation


N'hésitez pas à proposer vos exercices et/ou vos solutions :)
  • Partager sur Facebook
  • Partager sur Twitter
11 décembre 2009 à 13:12:04

Mais ça te permettrait quand même de pouvoir les reclasser du plus facile au plus dur facilement...
Le mieux ça serait limite que tu fases un tutoriel que tu updates :-°
  • Partager sur Facebook
  • Partager sur Twitter
11 décembre 2009 à 13:41:13

Petite remarque, une fonction se définit partout par 'foo () {bar}' plutot que d'utiliser un bashisme affreux comme function.

(En plus tu le sais, mais tu mélanges les notations...)

Et pour finir de troller, dash smieux.
  • Partager sur Facebook
  • Partager sur Twitter
11 décembre 2009 à 17:31:12

Citation : Erus_Iluvatar

(En plus tu le sais, mais tu mélanges les notations...)



J'ai utilisé (et non mélangé) les deux notations pour souligner leur existences respectives

Citation : Erus_Iluvatar

un bashisme affreux comme function.



Mais vu qu'on parle de procédures en Bash ... je n'y vois pas d'inconvénients (les langages ne sont pas toujours fait pour se ressembler).


Citation : xavierm02

Mais ça te permettrait quand même de pouvoir les reclasser du plus facile au plus dur facilement...
Le mieux ça serait limite que tu fases un tutoriel que tu updates :-°



Bof, des exos c'est pas suffisant pour faire un tuto ... et puis m@teo21 s'occupe déjà d'un tuto sur Bash (qui n'est pas encore terminé je crois). Et puis c'est juste des exos histoire de s'entraîner, pas la peine de faire beaucoup de cérémonie. L'idée c'est aussi que d'autres postes des exercices (même si j'en ai encore en réserve) ...

Par contre ce qui serait faisable, c'est de recenser les exos par des liens et les classer par niveaux de difficultés (je m'en chargerai à l'occasion ;) ).
  • Partager sur Facebook
  • Partager sur Twitter
11 décembre 2009 à 20:31:23

Sisi, dans ta calculette, tu utilise les deux. Pis bon, sinon tout tes scripts fontionnent avec dash sans ce bashisme, d'où ma remarque (un peu aigrie d'ailleurs, pardon)
  • Partager sur Facebook
  • Partager sur Twitter
11 décembre 2009 à 22:11:58

Citation : Erus_Iluvatar

Sisi, dans ta calculette, tu utilise les deux.



C'est ce que j'ai dis ... mais lorsque tu parles de mélange, on croirait qu'il y a des confusions. Encore une fois c'est pour souligner l'existence des deux syntaxes.

Exercice 9 : Les notes, pour changer ...

Confirmé


Il s'agit ici d'un script qui va devoir exploiter les données d'un fichier de notes que vous aller crée au préalable dans le même répertoire que le script.

Ce fichier sera appelé FichierNote et devra se présenter comme ceci :

Citation : FichierNote

Dupont François 12
Durand Françoise 8
Dujardin Nicole 14



Les espaces entre les mots sont des tabulations (Nom + tab + Prénom + tab + note, après le reste n'a pas d'importance).


Le script doit afficher les lignes dans lesquelles la note est supérieur ou égal à 10. Si le fichier est vide, il doit quitter (donc ne pas boucler indéfiniment).

Exemple d'exécution :
[ ~] ./NomDuScript
Dupont        François        12
Dujardin Nicole        14
[ ~] rm FichierNote
[ ~] touch FichierNote
[ ~] ./NomDuScript
[ ~]


Solution :
#!/bin/bash

cat  FichierNote | while true
do
	read ligne	
	if [ "$ligne" = "" ]
	then
		exit 0
	else
		set -- $ligne 
		if [ $3 -ge 10 ]
		then
			echo "$ligne"
		fi
	fi
done

  • Partager sur Facebook
  • Partager sur Twitter
13 décembre 2009 à 9:50:06

Exercice 10 : Liste d'utilisateurs

Confirmé


Ici, vous devez avoir un script qui prend en paramètre (ou en saisie en cas d'absence du paramètre) un fichier qui contient des lignes comme ceci : Login + Tabulation + Nom + Tabulation + Prénom. Exemple :

Citation : fichier

dupontf Dupont François
fdurand Durand Françoise
nicoled Dujardin Nicole



(les espaces sont des tabulations)

Le script devra vérifier, à l'aide d'une fonction, l'existance des utilisateurs enregistrés dans le fichier. Admettons que seul Dupont François soit un utilisateur et que le fichier se nomme ~/Documents/FichierUser, le script devra s'exécuter comme ceci :

[ ~] ./NomDuScript ~/Doucuments/FichierUser
dupontf        Dupont        François
[ ~] ./NomDuScript
Saisissez le fichier à traiter :
~/Documents/UserFichier
Le fichier n'existe pas ...
[ ~]


Vous devinerez donc que le script doit d'abord vérifier l'existence du fichier avant de comparer son contenu au fichier /etc/passwd. Le script quitter la boucle si le fichier est vide.

Solution :
#!/bin/bash

TestUser ()
{
	if grep "^$util:" /etc/passwd > /dev/null
	then
		echo $ligne
	fi
}

if [ $# -eq 0 ]
then
	echo "Chemin et nom du fichier :"
	read fichier
else
	fichier=$1
fi

if [ -e $fichier ]
then
	cat $fichier | while true
	do
		read ligne 
		if [ "$ligne" = "" ]
		then
			exit
		else
			set -- $ligne
			util=$1
			TestUser
		fi
	done
else
	echo "Le fichier $fichier n'existe pas ..."
fi


N'hésitez pas à proposer vos solutions (elles sont peut être plus optimisées d'ailleurs, mais même si ce n'est pas le cas allez y ;) ).
  • Partager sur Facebook
  • Partager sur Twitter
Anonyme
14 décembre 2009 à 17:04:18

Très bonne idée !

Par contre le coup de la calculatrice... Réinventer la roue c'est bien mais des fois y'a un peu plus simple (je mets pas d'enrobage) :

read operation
echo $(($operation))
  • Partager sur Facebook
  • Partager sur Twitter
14 décembre 2009 à 17:48:49

MarbolanGos : Ca perd tout l'intérêt que ça avait avec ta méthode...
  • Partager sur Facebook
  • Partager sur Twitter
20 décembre 2009 à 6:06:15

un script que j'avais fait il y a assez longtemps(tout bête :D )... en gros c'est pratique pour faire son propre installateur de distros....

Exercice 11 : Faites votre propre version passwd
Débutant/Habitué

Contentez-vous simplement de stocker vos mots passe users/root dans des variables, ça devrait être suffisant.

UserName=BadPotato
PASSROOT1="Le ciel est bleu"
PASSROOT2="La mer est calme" 

PASSUSER1="Ferme ta yeule pis rame"
PASSUSER2="ohhhhhhh yeah" 

echo "Pour commencer, nous allons défénir un mot de passe pour le root et $UserName (l'user)."
echo "Commençont par le root" 


while [ "$PASSROOT1" != "$PASSROOT2" ]; do
   echo "Entrez le mot de passe pour root:"
   read -s PASSROOT1
   echo "Confirmez le mot de passe pour root:"
   read -s PASSROOT2 

   if [ "$PASSROOT1" != "$PASSROOT2" ]; then
      echo "Erreur de saisie du mot de passe.  Recommencez..."
   fi
done

echo "Bravo, configuront maintenant celui de l'user ( $UserName ) "

while [ "$PASSUSER1" != "$PASSUSER2" ]; do
   echo "Entrez le mot de passe pour $UserName (l'user):"
   read -s PASSUSER1
   echo "Confirmez le mot de passe pour $UserName (l'user):"
   read -s PASSUSER2 
   if [ "$PASSUSER1" != "$PASSUSER2" ]; then
      echo "Erreur de saisie du mot de passe.  Recommencez..."
   fi
done

# ... une fois en chroot mettre ceci:
echo root:$PASSROOT1 | chpasswd
echo root:$PASSUSER1 | chpasswd
  • Partager sur Facebook
  • Partager sur Twitter
21 décembre 2009 à 16:22:23

Merci de ta participation ;)

Exercice 12 : Convertisseur décimale/binaire
Confirmé


Alors ici, il faut coder un script qui prend en paramètre (ou en saisie en cas d'absence de paramètres) une valeur décimale et qui doit la convertir en binaire.

Vous devez travailler sur 8 bits et chaque bit devra être contenu dans une case d'un tableau monodimentionnel ... à l'a fin on affiche toutes les cases de ce tableau de sorte à avoir la valeur en binaire lisible de droite à gauche, de la valeur décimale saisie au départ.

#!/bin/bash

MaxBits=8

pow ()
{
    value2=1
    for (( k=1 ; k<$i ; k ++ ))
    do
        let value2=$value2*2
    done
}

if [ $# -eq 0 ]
then
    echo "Saisir une valeur décimale"
    read value
else
    value=$1
fi

declare -a bin

j=0
for (( i=$MaxBits ; i>=0 ; i-- ))
do
    pow
    if [ $value -ge $value2 ]
    then
        bin[j]="1"
        let value=$value-$value2
    else
        bin[j]="0" 
    fi
    let j=$j+1
done

printf "La valeur binaire est de : "
for (( i=0 ; i<=($MaxBits-1) ; i++ ))
do
    printf ${bin[i]}
done
echo ""
  • Partager sur Facebook
  • Partager sur Twitter
6 janvier 2010 à 21:33:20

Et je reviens avec un petit exercice simple ...

Exercice 13 : Tri à bulle simple
Habitué


Le script devra enregistrer à l'aide d'une 10 entiers dans un tableau puis les trier dans l'ordre croissant dans ce même tableau (sans passer par un autre) et enfin afficher le contenu du tableau (ordonné) sur la sortie standard.

Solution :
#!/bin/bash

SIZE=10

for (( i=0 ; i<SIZE ; i++ ))
do
    printf "Saisir un entier : "
    read tab[i]
done

echo -e "\n"

for (( i=0 ; i<SIZE ; i++ ))
do
    for (( j=($i+1) ; j<SIZE ; j++ ))
    do
        if [ ${tab[j]} -le ${tab[i]} ]
        then
            tampon=${tab[i]}
            tab[i]=${tab[j]}
            tab[j]=$tampon
        fi
    done
done

for (( i=0 ; i<SIZE ; i++ ))
do
    echo ${tab[i]}
done
  • Partager sur Facebook
  • Partager sur Twitter
20 juillet 2010 à 14:07:09

Bonjour.
Je m'excuse d'écrire sur un sujet aussi vieux mais voulant faire quelques exercices sur les script bash, je suis tombé sur ce sujet. Mais le problème que j'ai est que je ne peux voir les corrections. Donc je souhaiterais savoir si cela vient de mon PC ou alors si ces corrections ne sont tout simplement plus ici.
Je vous remercie d'avance de vos réponses.

PS : Oubliez ce que je viens de dire ça marche en fait c'est à cause de ma connexion à internet j'ai un modem 56 connexant avec le pilote libre alors ça bug comme pas possible encore désolé pour la gêne occasionné.
  • Partager sur Facebook
  • Partager sur Twitter
14 décembre 2014 à 19:33:46

 Créer script shell qui permet en argument une liste de fichiers texte . Ce script permet de passer en majuscule le contenu de ce fichier. Les resultats seront mis dans autre fichiers qui font suivi(exp fich => fichMajus) . 

VOUS POUVEZ M'AIDEE

  • Partager sur Facebook
  • Partager sur Twitter
13 décembre 2015 à 23:23:52 - Message modéré pour le motif suivant : Message complètement hors sujet


Anonyme
13 décembre 2015 à 23:52:19

rouritafatma a écrit:

Bonjour, aider moi pour réaliser ce exercice
Ecrire un script shell permettant d'afficher le menu suivant :
Menu
l créer le fichier liste contenant les fichiers du répertoire de connexion.
d demander à l'utilisateur de saisir le nom d'un répertoire. S'il existe faire un lien sur ce répertoire
dans le répertoire de connexion.
f rechercher le fichier dont le nom est donné comme 1er paramètre dans le repertoire /tmp. S'il
existe il sera supprimé.
r afficher les droits d'accés ainsi que le propiriétaire du fichier donné comme 2ème paramètre s'il
existe.
u rechercher si le nom d'utilisateur donné comme 3ème paramètre est définit sur le système. Si oui
afficher son uid et son gid.
q quitter le menu
Faites tous les tests nécessaires

On te demande pas l'impossible .. Fait des recherches sur google. Pose au moins un bout de code. On va pas faire le travail à ta place.

http://abs.traduc.org/abs-5.0-fr/

  • Partager sur Facebook
  • Partager sur Twitter
14 décembre 2015 à 0:02:00

j'ai dit qui peut m'aider et non pas faire a ma place
  • Partager sur Facebook
  • Partager sur Twitter
14 décembre 2015 à 10:52:31

super, je trouve ton poste sur des exercice en script bash Linux super, ca permert d'apprendre et d'avancer. Des que j'ai le temps je passerai a ton poste que je trouve tres bien.
  • Partager sur Facebook
  • Partager sur Twitter
14 décembre 2015 à 17:01:05

Bonjour, aider moi pour réaliser ce exercice
Ecrire un script shell permettant d'afficher le menu suivant :
Menu
l créer le fichier liste contenant les fichiers du répertoire de connexion.
d demander à l'utilisateur de saisir le nom d'un répertoire. S'il existe faire un lien sur ce répertoire
dans le répertoire de connexion.
f rechercher le fichier dont le nom est donné comme 1er paramètre dans le repertoire /tmp. S'il
existe il sera supprimé.
r afficher les droits d'accés ainsi que le propiriétaire du fichier donné comme 2ème paramètre s'il
existe.
u rechercher si le nom d'utilisateur donné comme 3ème paramètre est définit sur le système. Si oui
afficher son uid et son gid.
q quitter le menu
Faites tous les tests nécessaires
  • Partager sur Facebook
  • Partager sur Twitter
14 décembre 2015 à 22:59:14

#!/bin/bash
#Affiche le nombre de lettre ou de mots dans un fichier .txt
#Vous rechercher la ligne ou se trouve le mots aussi.

 

read -p "entre ton chemin du fichier " fiche
read -p "choisir une lettre ou mots: " mots
for i in  $mots 
do
     
    nombre=$(grep -E "$i" $fiche)     
    nombre2=$(grep -E "$i" $fiche | wc -L )
    nombre3=$(grep "$i" $fiche | wc -l )
    nombre4=$(nl $fiche | cat | grep "$i" )
done
if [   $mots  ] 
then  
      echo "trouver 

      $nombre2   :lettre du mots
      $nombre3   :mots dans le texte
      ligne : $nombre4   "
else
echo "non trouver"
fi


j'ai trouver tes script pour apprendre excellent, merci à toi, je vais travailler dessus merci.sinon voila un script  que j'avais fait, vous pouvez l'améliorer encore.

ce script permet de :

Il affiche le nombre de lettre ou de mots dans un fichier .txt
Il Vous recherche la ligne ou se trouve le mots aussi.
Par preciser bien le nom du fichier et du chemin.

voila : ce que ca donne

entre ton chemin du fichier /home/luky/restauration.txt            
choisir une lettre ou mots: airmode
trouver 

      55   :lettre du mots
      1   :mots dans le texte
      ligne :     11	airmode	



-
Edité par ALAIN290000 14 décembre 2015 à 23:00:43

  • Partager sur Facebook
  • Partager sur Twitter
17 mars 2016 à 18:21:16

Créez un script qui boucle en demandant une chaîne de caractères, insère cette chaîne de caractères dans un fichier donné en premier paramètre jusqu'à ce que la taille du fichier dépasse 50


slt solution

  • Partager sur Facebook
  • Partager sur Twitter
17 mars 2016 à 18:39:31

« dépasse 50 » quoi ?

centimètres de haut ?
pieds de long ?
Km/H ?

je ne sais même pas pourquoi je réponds, je ne parle pas au personnes malpolies, et irrespectueuses : pas de «bonjour», pas de «s'il vous plaît», pas de «merci», aucun travail d'explication du travail à faire, aucune recherche de solution.

eh ben, pas de réponse/solution !

  • Partager sur Facebook
  • Partager sur Twitter

Validez la réponse utile « Un problème clairement exposé est à moitié résolu. » Pas de MP technique

17 mars 2016 à 18:42:22

#!/bin/bash
a=0
while [ $a -le 50 ]
do
read -p "entrer une chaine : " ch
echo $ch >> fichier
a=`stat -c %s fichier`
done
  • Partager sur Facebook
  • Partager sur Twitter
5 avril 2016 à 21:37:21

Aide 

 Écrire un script qui demande a l'utilisateur de donner deux nombres et affiche la somme .le script doit être exécuté avec deux paramètre ,sinon il faut traiter le cas d'erreur.

  • Partager sur Facebook
  • Partager sur Twitter
5 avril 2016 à 21:49:48

SalmaSalma8 a écrit:

Aide

non.

Bonjour,

d'abord.

  • Partager sur Facebook
  • Partager sur Twitter

Validez la réponse utile « Un problème clairement exposé est à moitié résolu. » Pas de MP technique

8 avril 2016 à 23:57:30

#!/bin/bash
if [ $# -eq 2 ];then
        let "s=$1+$2"
        echo "la somme est : $s"
else
        echo "erreur!!"
fi
  • Partager sur Facebook
  • Partager sur Twitter