Exe programme shell
Résolu
adamodin
Messages postés
89
Statut
Membre
-
adamodin Messages postés 89 Statut Membre -
adamodin Messages postés 89 Statut Membre -
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
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
-
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
-
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-
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...)
-
-
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 -
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 -
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
-
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 .