Controle d'acquisition en Bash

[Résolu/Fermé]
Signaler
-
 McQuingley789 -
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

Messages postés
40805
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 872
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
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 65492 internautes nous ont dit merci ce mois-ci


Merci beaucoup!! Ca marche maintenant!! :)