Numerotation des lignes en programmation shell

Bonjour, svp j'essaie de numéroter les taches que j'insère dans mon fichier.txt mais j'y arrive pas.Pouvez-vous m'aider à trouver une solution?voici mon code:
#!/bin/bash

echo " Vos donnée seront stockée dans le repertoire Tache "
mkdir Tache
cd Tache
touch fichier.txt


read -p" Veuillez insérer votre tache: " tach
echo " $tach  "  >>fichier.txt
cpt=1
while read tach
do
echo " ${cpt} ${tach} "
(( cpt++ ))
done >>fichier.txt

echo -n " tache enregistrer avec succes! "
echo -n "voulez vous continuer Y/N: "
read ouinon
if [ "$ouinon" = "y" ] || [ "ouinon" = "Y" ] ; 
then
for ouinon in "y"
do
    read -p" Veuillez insérer votre tache: " tach
echo " $tach " >>fichier.txt
echo -n " tache enregistrer avec succes! "
done
 elif [ "$ouinon" = "n" ] || [ "ouinon" = "N" ] ;
  then
echo "Ok, bye! "
fi 
done >>fichier.txt


3 réponses

  1. Bonjour,
    sans doute quelque chose du genre :
    echo " ${cpt} $tach " >>fichier.txt
    à tester ...
    mais tout dépend de l'exploitation que tu veux en faire par la suite ..
    A+
    1. bsr merci bien pour votre attention ! je me met au travail !bonne suite
    2. bsr j'ai tester le code et essayé quelques modifications mais ca marche pas la tache est numérotée mais repeté plusieurs fois.je compte juste liste les taches inserées avec l'appel d'une fonction mais je tient à numéroter les taches d'abord.merci pour votre attention.
    3. Contributeur
      @mohamedSalut,

      Petite question (qui rejoint celle de zipe31 ci-dessous) :
      Arrives-tu à faire une boucle infinie qui te demande d'insérer une tâche et que tu puisses arrêter à tout moment ?
  2. Contributeur
    Salut,

    Avant de vouloir faire des choses plus ou moins compliquées, il faudrait déjà t'assurer que ton script puisse faire une boucle "tant que" (
    while
    ) qui ajoute bien des tâches tant qu'on le lui demande et qui s'arrête lorsqu'on le souhaite.

    Quand ça ça marchera, tu seras alors à même de t'inquiéter de numéroter chaque tâche ajoutée ;-\

    Une piste, avec une boucle
    while true
    utilisée conjointement avec
    case…esac
    on utilise souvent les commandes
    continue
    et
    break
    …
    1. ok merci bien pour votre attention!je vais corriger cela
  3. Salut,

    Si tu peux te le permettre, tu peux écrire toutes tes taches et faire le compte à la fin !

    Affiche 1 premiére tache (ligne)
    taches=$(cat -n fichier.txt)


    Affiche le nombre total de taches (lignes)
    nb_taches=$(cat fichier.txt |wc -l)


    A plus,
    1. nl fichier

      wc -l <fichier