Exe programme shell

Résolu
Bonjour,
svp je vx votre aide
script qui affiche les n (p e n=12) premier lignes d une liste de nom de fichiers admis en parametre d entree le script devra verefie que la donnee n est correcte et il en est de meme avec les fichiers . les parametres a passer a ce script sont n et les nom des fichiers
voila ce que j ai fait svp tu px modifie les erreurs et merci bien
#/bin/bash
echo "entrie le nom de fichier"
read file
if test-f $file
then
echo"entrie le nombre de ligne "
read x
if (($x<0))
then
echo"le nombre est incorrect"
else
head -n $x $file
fi
fi
merci d'avance
Configuration: Windows 7 / Firefox 3.6

6 réponses

  1. oui merci bien j ai bien compr ton script .
    un autre demande svp je cherche des exercices de programation shell avec des corrections .connaissez vs des sites ???
    merci d'avance .
    1. merci bien ton script est parfait . merci bien
      1. Modérateur
        De rien, il ne te restera plus qu'à expliquer à ton prof les différents choix ;-))
      2. @jipicyun autre demande svp je cherche des exercices de programation shell avec des corrections .connaissez vs des sites ???
        merci d'avance .
    2. Modérateur
      Essaye ça :

      #! /bin/sh
      
      #set -xv
      
      # Test nombre params
      if [ "$#" -lt 2 ]
      then echo "ERREUR ! Il faut au moins 2 paramètres."
      exit 3
      fi
      
      nbr="$1"
      if ! ((nbr)) 2>/dev/null
      then echo "ERREUR ! Le 1er paramètre n'est pas un entier."
      exit 4
      fi
      
      shift
      for param in "$@"
      do
      if [ -f  "${param}" ]
      then
      echo "${param} est bien un fichier."
      echo "Affichage des ${nbr} premières lignes du fichier ${param}..."
      echo
      head -n "${nbr}" "${param}"
      echo
      else
      echo "${param} n'est pas un fichier."
      echo
      fi
      done
      1. ok merci bien cher ami mais notre prof ma dis qu'il y a des erreurs donc il faut que l'éviter .personnellement j'arrive pas les déterminer .svp si tu px m'aider
        merci
        1. excuse moi mais je crois pas que vous avez pas répond a ma question car apres que le programme tester si le file est un fichier il affiche les n ligne ce quelle manque ds votre programme
          merci bien cher ami
          1. Modérateur
            Re-

            Je ne t'ai pas donné le programme en entier, mais des briques à assembler, répondant à tes questions et aux besoins de ton script.

            A toi de rassembler les parties en tenant compte de ce que je t'ai donné.

            1 - Tester le 1er paramètre (numérique, voir lien)
            2 - Tester les autres paramètres (tu peux tout a fait inclure l'affichage des lignes du fichier de suite après avoir testé que le paramètre est bien un fichier...)
        2. Modérateur
          Salut,

          d une liste de nom de fichiers admis en parametre
          A mon avis il faut passer tous les fichiers dont on doit lire n lignes d'un coup et non pas demander les fichiers un par un.

          ./script_test.sh 5 fichier1 fichier2 fichier3


          d entree le script devra verefie que la donnee n est correcte
          Il faut vérifier que le 1er paramètre est bien une valeur numérique.
          Voir Tester une variable numérique

          et il en est de meme avec les fichiers .
          Ensuite il faut tester que les autres paramètres du script sont bien des fichiers

          shift
          for param in "$@"
          do
          if [ -f  "${param}" ]
          then
          echo "${param} est bien un fichier."
          else
          echo "${param} n'est pas un fichier."
          exit
          fi
          done