Exe programme shell

Résolu
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
A voir également:

6 réponses

jipicy Messages postés 41342 Statut Modérateur 4 896
 
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

0
adamodin Messages postés 89 Statut Membre 13
 
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
0
jipicy Messages postés 41342 Statut Modérateur 4 896
 
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...)
0
adamodin Messages postés 89 Statut Membre 13
 
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
0
jipicy Messages postés 41342 Statut Modérateur 4 896
 
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
adamodin Messages postés 89 Statut Membre 13
 
merci bien ton script est parfait . merci bien
0
jipicy Messages postés 41342 Statut Modérateur 4 896
 
De rien, il ne te restera plus qu'à expliquer à ton prof les différents choix ;-))
0
adamodin Messages postés 89 Statut Membre 13 > jipicy Messages postés 41342 Statut Modérateur
 
un autre demande svp je cherche des exercices de programation shell avec des corrections .connaissez vs des sites ???
merci d'avance .
0
adamodin Messages postés 89 Statut Membre 13
 
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 .
0