Bonjour.

Je commence une formation de programmeur, mais le passage sur Unix est assez "flou".

Pour exemple, je dois faire un script en Bourne Shellqui affiche les ligne 5 à 10 du fichier visé.

Pour cela, j'ai réussi avec le code suivant :

#!/bin/sh
then head -10 $1 | tail -5
Là ou je pêche, c'est qu'il faut que je teste le fichier visé, pour voir si c'est un fichier ordinaire. Dans le cas contraire, je dois envoyer le message :
n'est pas un fichier ordinaire, ou n'existe pas

J'ai donc rédigé cela :

#!/bin/sh
if test -f $1
then head -10 $1 | tail -5
else echo $1 n\'est pas un fichier ordinaire, ou n\'existe pas
fi
Et là, malheureusement, cela m'indique à chaque fois que le fichier n'est pas ordinaire, ou n'existe pas. J'ai beau chercher, je ne vois pas l'erreur que j'ai commise.


Dans le même ordre d'idée, je dois évaluer deux numérique pour établir une comparaison "est inférieur à".
#!/bin/sh
until test [$# -eq 2]
do
if test $# -lt 1
echo Il n\' y a aucun argument, entrez deux arguments
elif test $# -eq 1
echo il manque un argument
elif test $# -gt 2
echo il y a trop d\'arguments
fi
done
if $1 -lt $2
then echo $1 est inferieur à $2
else echo $2 est inferieur à $1
fi
j'ai beau chercher, je ne trouve pas l'erreur.

Merci de vos réponses.