Script shell et passage d'un fichier en argum
Fermé
Richard.M
Messages postés
105
Date d'inscription
dimanche 28 juin 2009
Statut
Membre
Dernière intervention
28 mars 2014
-
10 août 2010 à 20:07
jivef Messages postés 927 Date d'inscription mercredi 11 août 2004 Statut Membre Dernière intervention 12 novembre 2020 - 11 août 2010 à 05:17
jivef Messages postés 927 Date d'inscription mercredi 11 août 2004 Statut Membre Dernière intervention 12 novembre 2020 - 11 août 2010 à 05:17
A voir également:
- Script shell et passage d'un fichier en argum
- Fichier rar - Guide
- Comment ouvrir un fichier epub ? - Guide
- Comment réduire la taille d'un fichier - Guide
- Script vidéo youtube - Guide
- Fichier host - Guide
7 réponses
Richard.M
Messages postés
105
Date d'inscription
dimanche 28 juin 2009
Statut
Membre
Dernière intervention
28 mars 2014
8
10 août 2010 à 20:56
10 août 2010 à 20:56
Est ce que ca veut dire qu'il n'y a rien de spéciale a faire ?
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 897
10 août 2010 à 20:32
10 août 2010 à 20:32
Salut,
Car ici le probleme c'est que $1(test.c) ne correspond qu'à une chaine de caracteres, et non au véritable fichier.
Tu peux préciser ta pensée s'il te plait, merci ;-)
Car ici le probleme c'est que $1(test.c) ne correspond qu'à une chaine de caracteres, et non au véritable fichier.
Tu peux préciser ta pensée s'il te plait, merci ;-)
Richard.M
Messages postés
105
Date d'inscription
dimanche 28 juin 2009
Statut
Membre
Dernière intervention
28 mars 2014
8
10 août 2010 à 20:37
10 août 2010 à 20:37
ben quand je vais lancer la commande "programme.sh test.c", l'argument test.c est considéré comme une chaine de caractere, autrement dit : Comment mon pc peut savoir que l'argument test.c correspond a un fichier qui existe bel,et bien.
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 897
10 août 2010 à 20:45
10 août 2010 à 20:45
Ce n'est pas ton PC qui analyse l'argument mais le shell qui doit avoir une routine qui examine les arguments et en détermine l'origine avant de le traiter...
Richard.M
Messages postés
105
Date d'inscription
dimanche 28 juin 2009
Statut
Membre
Dernière intervention
28 mars 2014
8
Modifié par Richard.M le 10/08/2010 à 21:05
Modifié par Richard.M le 10/08/2010 à 21:05
j'ai deja essayer ca et ca ne marche pas justement.
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 897
10 août 2010 à 21:12
10 août 2010 à 21:12
$ ls # Listing répertoire foo.sh* plop $ cat plop # Contenu fichier texte alade tomate jambon purée salade purée tomate tomate jambon salade purée salade purée tomate jambon salade purée tomate purée jambon tomate salade purée tomate salade saladetomatejambonpurée saladetomateknackpurée saladetomatepuréejambonyaourt $ cat foo.sh # Contenu script #! /bin/bash cat $1 $ ./foo.sh plop # Lancement script alade tomate jambon purée salade purée tomate tomate jambon salade purée salade purée tomate jambon salade purée tomate purée jambon tomate salade purée tomate salade saladetomatejambonpurée saladetomateknackpurée saladetomatepuréejambonyaourt $
Richard.M
Messages postés
105
Date d'inscription
dimanche 28 juin 2009
Statut
Membre
Dernière intervention
28 mars 2014
8
10 août 2010 à 21:57
10 août 2010 à 21:57
merci pour ton aide
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Dans ton script il faut faire un test avec if, essaye cela.
if [-e $1]
then
echo 'Le fichier en argument existe'
else
echo 'Le fichier en argument est inexistant'
exit 1
fi
Je me suis inspiré de ce que j'ai trouvé ici :
http://www-gtr.iutv.univ-paris13.fr/Cours/Mat/Systeme/TDTP2003/tp03.html
if [-e $1]
then
echo 'Le fichier en argument existe'
else
echo 'Le fichier en argument est inexistant'
exit 1
fi
Je me suis inspiré de ce que j'ai trouvé ici :
http://www-gtr.iutv.univ-paris13.fr/Cours/Mat/Systeme/TDTP2003/tp03.html
Richard.M
Messages postés
105
Date d'inscription
dimanche 28 juin 2009
Statut
Membre
Dernière intervention
28 mars 2014
8
10 août 2010 à 21:57
10 août 2010 à 21:57
Merci pour la réponse et pour le lien
jivef
Messages postés
927
Date d'inscription
mercredi 11 août 2004
Statut
Membre
Dernière intervention
12 novembre 2020
306
11 août 2010 à 05:17
11 août 2010 à 05:17
Bonjour,
Le [ -e "$1" ] est intéressant, mais si c'est un répertoire, il va répondre positivement.
Il faut lui demander de tester qu'il s'agit bien d'un fichier ordinaire :
[ -f "$1" ]
A bientôt.
Cordialement.
Jonas.
Le [ -e "$1" ] est intéressant, mais si c'est un répertoire, il va répondre positivement.
Il faut lui demander de tester qu'il s'agit bien d'un fichier ordinaire :
[ -f "$1" ]
A bientôt.
Cordialement.
Jonas.
J'ai mieux compris ta question, j'ai testé cela et ça marche.
#**************
#!/bin/bash
cat $1
#**************
Tu t'étais trompé tu avais mis #!bin/bash
Et si tu appel ton script test.sh n'oublie pas que pour le lancer il faux taper ./test.sh dans le bon répértoire, et qu'il faut rendre le fichier test.sh exécutable.
#**************
#!/bin/bash
cat $1
#**************
Tu t'étais trompé tu avais mis #!bin/bash
Et si tu appel ton script test.sh n'oublie pas que pour le lancer il faux taper ./test.sh dans le bon répértoire, et qu'il faut rendre le fichier test.sh exécutable.
Richard.M
Messages postés
105
Date d'inscription
dimanche 28 juin 2009
Statut
Membre
Dernière intervention
28 mars 2014
8
10 août 2010 à 21:57
10 août 2010 à 21:57
Ok pas de soucis. Merci pour la réponse
jivef
Messages postés
927
Date d'inscription
mercredi 11 août 2004
Statut
Membre
Dernière intervention
12 novembre 2020
306
Modifié par jivef le 11/08/2010 à 05:25
Modifié par jivef le 11/08/2010 à 05:25
Bonjour,
Si ton fichier existe, alors $1 correspond au fichier.
S'il ne le trouve pas, c'est qu'il n'existe pas.
Dans ce cas, vérifie que le chemin est correct et que tu l'as bien écrit.
Tu peux perfectionner en mettant un test.
Affiche ton fichier s'il existe, sinon affiche un message disant que ton ficher n'existe pas.
#!/bin/bash
# Auteur :
# Version :
# Observation :
# test sur le premier argument.
# S'il existe et est un ficher ordinaire, alors afficher le contenu.
# Sinon afficher une erreur.
if [ -f "$1" ]
then
cat $1
else
echo " $1 n\'est pas un fichier ordinaire ou n\'existe pas."
echo " Merci d\'avoir joué avec nous."
fi
Note que j'ai forcé sur les commentaires, mais il faudra que tu t'habitue à le faire, pour faciliter la maintenance de tes scripts et programmes.
Dans la page de manuel de la commande "test" tu trouveras la syntaxe pour vérifier s'il s'agit d'un fichier, d'un répertoire, d'un poisson rouge, d'un lien ou d'un raton laveur.
L'option -r permet peut-être même de vérifier si le fichier est lisible...
A vérifier.
Bien cordialement.
Jonas.
Une idée reçue est souvent une idée morte.
Si ton fichier existe, alors $1 correspond au fichier.
S'il ne le trouve pas, c'est qu'il n'existe pas.
Dans ce cas, vérifie que le chemin est correct et que tu l'as bien écrit.
Tu peux perfectionner en mettant un test.
Affiche ton fichier s'il existe, sinon affiche un message disant que ton ficher n'existe pas.
#!/bin/bash
# Auteur :
# Version :
# Observation :
# test sur le premier argument.
# S'il existe et est un ficher ordinaire, alors afficher le contenu.
# Sinon afficher une erreur.
if [ -f "$1" ]
then
cat $1
else
echo " $1 n\'est pas un fichier ordinaire ou n\'existe pas."
echo " Merci d\'avoir joué avec nous."
fi
Note que j'ai forcé sur les commentaires, mais il faudra que tu t'habitue à le faire, pour faciliter la maintenance de tes scripts et programmes.
Dans la page de manuel de la commande "test" tu trouveras la syntaxe pour vérifier s'il s'agit d'un fichier, d'un répertoire, d'un poisson rouge, d'un lien ou d'un raton laveur.
L'option -r permet peut-être même de vérifier si le fichier est lisible...
A vérifier.
Bien cordialement.
Jonas.
Une idée reçue est souvent une idée morte.
10 août 2010 à 20:59