Controle d'acquisition en Bash

Résolu/Fermé
McQuingley789 - 9 avril 2007 à 22:47
 McQuingley789 - 11 avril 2007 à 20:00
Bonjour,

J'ai un problème pour faire un controle d'acquisition avec un message d'erreur.
Je vous explique:
J'ai un fichier file.txt que je voudrais compter le nombre de lignes puis demande à l'utilisateur quelle ligne il voudrait supprimer puis ensuite controler que ce nombre entré est bien dans l'intervalle [1- nombre de ligne de file.txt].
En algorithme ca donnerai quelque chose comme ca:
ecrire "veuillez entrer un nb"
lire nb
Tant que nb != [1-nombre de ligne de file.txt]
faire ecrire "mauvaise valeur veuillez recommencer:"
lire nb
fin Tant que

Mon problème se trouve dans le "Tant que nb != [1-nombre de ligne de file.txt]" que je n'arrive pas à coder en Bash.

Merci de m'aider!!!

2 réponses

jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 895
9 avril 2007 à 23:23
Salut,

C'est la boucle "while ... do ... done" qu'il te faut, comme ça :
#! /bin/bash

count=$(sed -n '$=' foo.txt)

echo "Entrez un nombre compris entre 1 et $count :"
read nmbre
while [ "$nmbre" == "0" -o "$nmbre" -gt "$count" ]
	do
		echo "Mauvaise valeur, veuillez recommencez ! "
		echo "Entrez un nombre compris entre 1 et $count :"
		read nmbre
	done
echo "Effacement de la ligne $nmbre."
sed ''$nmbre'd' foo.txt
;-))
1
McQuingley789
11 avril 2007 à 20:00
Merci beaucoup!! Ca marche maintenant!! :)
0