Script Shell qui ne marche pas !
Niky !
Messages postés
2
Statut
Membre
-
jipicy Messages postés 41342 Statut Modérateur -
jipicy Messages postés 41342 Statut Modérateur -
Bonjour,
J'ai à faire un script de test,
qui affiche si le nom passé en paramètre est fichier, répertoire ou n'existe pas dans le répertoire courant
en gérant les cas d'erreurs du nombre de paramètres entrés.
Voici mon scipt:
Merci de m'indiquer l'erreur !
J'ai à faire un script de test,
qui affiche si le nom passé en paramètre est fichier, répertoire ou n'existe pas dans le répertoire courant
en gérant les cas d'erreurs du nombre de paramètres entrés.
Voici mon scipt:
#! /bin/bash
echo Veuillez entrer un parametre !
read $p
if [ $# -ne 1 ]
then
if [ $# -eq 0 ]
then
echo ERREUR! Vous n avez entre aucun parametre!
else echo ERREUR! vous avez entre plusieurs parametres!
fi
else
if [ ! -e $p ]
then
echo $p n\'existe pas dans le repertoire courant!
else
if [ -f $p ]
then
echo $p est un fichier
else
if [ -d $p ]
then
echo $p est un repertoire
else
echo $p n\'est ni fichier ni repertoire
fi
fi
fi
fi
Merci de m'indiquer l'erreur !
A voir également:
- Script Shell qui ne marche pas !
- Classic shell - Télécharger - Personnalisation
- Script vidéo youtube - Guide
- Ghost script - Télécharger - Polices de caractères
- Mas script - Accueil - Windows
- Script cmd - Guide
3 réponses
Salut,
Essaie plutôt :
echo Veuillez entrer un parametre !
read $p
if [ $# -ne 1 ]
thenTu veux faire quoi là ??? Ta comparaison est fausse !
Essaie plutôt :
if [ $# -lt 1 ]mais il te faut changer le reste aussi, il y a trop de tests et de conditions derrière ;-(
Merci pour ta réponse,
ce que j'entends en effet par if [ $# -ne 1 ], c'est la condition où le nombe de paramètres n'est pas égal à 1 (-ne = not equal).
Sinon, que veut dir le " -lt"?
ce que j'entends en effet par if [ $# -ne 1 ], c'est la condition où le nombe de paramètres n'est pas égal à 1 (-ne = not equal).
Sinon, que veut dir le " -lt"?
Oups désolé, je me suis un peu planté sur ce coup là ;-(
En fait en te répondant, je répondais en pensant à ta requête dans ce post ;-\
En fait je me suis focalisé sur le "-e" qui teste l'existence d'un fichier ou autre et j'ai complètement laissé de côté le "-ne" ;-[
Juste pour info, le "-lt" (lether than - plus petit que)...
Bon, pour en revenir au script, tu testes en 1er lieu le nombre de paramètres passés au script, mais en fin de compte tu ne passes aucun paramètre au script puisque tu lances ton script normalement "./ton_script.sh" et que tu demandes interactivement l'entrée d'une variable.
Donc dans ton 1er test c'est pas le nombre de paramètres qu'il te faut tester, mais la valeur de "$p"...
;-))
En fait en te répondant, je répondais en pensant à ta requête dans ce post ;-\
En fait je me suis focalisé sur le "-e" qui teste l'existence d'un fichier ou autre et j'ai complètement laissé de côté le "-ne" ;-[
Juste pour info, le "-lt" (lether than - plus petit que)...
Bon, pour en revenir au script, tu testes en 1er lieu le nombre de paramètres passés au script, mais en fin de compte tu ne passes aucun paramètre au script puisque tu lances ton script normalement "./ton_script.sh" et que tu demandes interactivement l'entrée d'une variable.
Donc dans ton 1er test c'est pas le nombre de paramètres qu'il te faut tester, mais la valeur de "$p"...
;-))