Précédent   Forum des professionnels en informatique > Systèmes > Linux > Applications > Shell
Shell Vos questions sur l'utilisation des commandes shell
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 01/04/2011, 11h58   #1
Invité régulier
 
Inscription : septembre 2009
Messages : 27
Détails du profil
Informations forums :
Inscription : septembre 2009
Messages : 27
Points : 6
Points : 6
Par défaut Erreur sur echo

Bonjour,
J'essaye d'écrire un script( A ) qui lance un autre script (B) et en fonction du code de retour je lance le traitement correspondant, sauf que le deuxième script contient un echo et du coup en lançant le script A je me retrouve avec une erreur code 127 "mauvais nombre d'unité de fichier [Aucun fichier ou répertoire de ce type]"
Avez vous une idée !??

script A
Code :
1
2
3
4
5
6
7
8
9
10
11
12
#!/usr/bin/ksh
script_tmp="test1"
`eval $script_tmp`
RCC=$?
echo $RCC
if [ $RCC -eq 0 ]
then
      echo "== Fin du traitement $1 avec succes";
else
	echo "/!\ Erreur lors du traitment $1."; 
fi
exit 0
Script B : test1
Code :
1
2
#!/bin/ksh
echo "titi"
nounou0018 est déconnecté   Envoyer un message privé Réponse avec citation 01
Vieux 01/04/2011, 12h45   #2
Expert Confirmé Sénior
 
Avatar de frp31
 
Homme francois
Ingénieur systèmes et réseaux
Inscription : juillet 2006
Messages : 3 534
Détails du profil
Informations personnelles :
Nom : Homme francois
Âge : 35
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur systèmes et réseaux
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : juillet 2006
Messages : 3 534
Points : 7 743
Points : 7 743
tu peux ajouter à la fin du script B un exit 0 pour forcer ton exit à 1 ou 0 et rien d'autre.

par exemple

script B
Code :
1
2
3
#!/bin/sh
commande
if [ $? -ne 0 ] ; then exit 1 ; else exit 0 ; fi
frp31 est déconnecté   Envoyer un message privé Réponse avec citation 01
Vieux 01/04/2011, 12h50   #3
Invité régulier
 
Inscription : septembre 2009
Messages : 27
Détails du profil
Informations forums :
Inscription : septembre 2009
Messages : 27
Points : 6
Points : 6
Citation:
Envoyé par frp31 Voir le message
tu peux ajouter à la fin du script B un exit 0 pour forcer ton exit à 1 ou 0 et rien d'autre.

par exemple

script B
Code :
1
2
3
#!/bin/sh
commande
if [ $? -ne 0 ] ; then exit 1 ; else exit 0 ; fi
D'abord merci pour la réponse mais dans mon script B , enfin pas celui l'initial quoi, il y a un exit et je dois impérativement garder le echo !

ps : je rappelle que c'est le script A qui appelle le script B !!
nounou0018 est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 01/04/2011, 13h36   #4
Expert Confirmé
 
Inscription : janvier 2011
Messages : 970
Détails du profil
Informations personnelles :
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations forums :
Inscription : janvier 2011
Messages : 970
Points : 2 871
Points : 2 871
Salut;

Citation:
`eval $script_tmp`
Pourquoi vouloir évaluer le contenu de ta variable ?

Lances ton script et c'est tout :

Et teste le code retour...

__________________
$ man woman
Il n'y a pas de page de manuel pour woman.
zipe31 est déconnecté   Envoyer un message privé Réponse avec citation 11
Vieux 01/04/2011, 13h39   #5
Membre Expert
 
Homme Alexis
Intégrateur d'Exploitation
Inscription : février 2003
Messages : 876
Détails du profil
Informations personnelles :
Nom : Homme Alexis
Âge : 32
Localisation : France

Informations professionnelles :
Activité : Intégrateur d'Exploitation
Secteur : Biens de consommation

Informations forums :
Inscription : février 2003
Messages : 876
Points : 1 619
Points : 1 619
Envoyer un message via ICQ à Alek-C Envoyer un message via Skype™ à Alek-C
pourquoi 'eval ...' ?

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
$ cat A.ksh
#!/bin/ksh
script_tmp="./B.ksh"
$script_tmp
RCC=$?
echo $RCC
if [ $RCC -eq 0 ]
then
echo "== Fin du traitement $1 avec succes";
else
echo "/!\ Erreur lors du traitment $1.";
fi
exit 0
$ cat B.ksh
#!/bin/ksh
echo "titi"
$ ./A.ksh
titi
0
== Fin du traitement  avec succes
Alek-C est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 01/04/2011, 14h29   #6
Invité régulier
 
Inscription : septembre 2009
Messages : 27
Détails du profil
Informations forums :
Inscription : septembre 2009
Messages : 27
Points : 6
Points : 6
Citation:
Envoyé par Alek-C Voir le message
pourquoi 'eval ...' ?
Parce que j'en ai tellement fais que c'est devenu automatique
a vrai dire les 'eval' c'est comme les antibiotiques c'est pas automatique ^^
Citation:
Envoyé par Alek-C Voir le message
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
$ cat A.ksh
#!/bin/ksh
script_tmp="./B.ksh"
$script_tmp
RCC=$?
echo $RCC
if [ $RCC -eq 0 ]
then
echo "== Fin du traitement $1 avec succes";
else
echo "/!\ Erreur lors du traitment $1.";
fi
exit 0
$ cat B.ksh
#!/bin/ksh
echo "titi"
$ ./A.ksh
titi
0
== Fin du traitement  avec succes
ça marche nikel ^^
Merci pour la réponse
nounou0018 est déconnecté   Envoyer un message privé Réponse avec citation 01
Vieux 01/04/2011, 14h29   #7
Invité régulier
 
Inscription : septembre 2009
Messages : 27
Détails du profil
Informations forums :
Inscription : septembre 2009
Messages : 27
Points : 6
Points : 6
Citation:
Envoyé par zipe31 Voir le message
Salut;


Pourquoi vouloir évaluer le contenu de ta variable ?

Lances ton script et c'est tout :

Et teste le code retour...

il faut que j'arrêtes les evals
Merci pour la réponse
nounou0018 est déconnecté   Envoyer un message privé Réponse avec citation 01
Vieux 01/04/2011, 16h38   #8
Expert Confirmé Sénior
 
Avatar de frp31
 
Homme francois
Ingénieur systèmes et réseaux
Inscription : juillet 2006
Messages : 3 534
Détails du profil
Informations personnelles :
Nom : Homme francois
Âge : 35
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur systèmes et réseaux
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : juillet 2006
Messages : 3 534
Points : 7 743
Points : 7 743
Citation:
Envoyé par nounou0018 Voir le message
D'abord merci pour la réponse mais dans mon script B , enfin pas celui l'initial quoi, il y a un exit et je dois impérativement garder le echo !

ps : je rappelle que c'est le script A qui appelle le script B !!

c'est le cas ton echo tu le mets à <commandes>
frp31 est déconnecté   Envoyer un message privé Réponse avec citation 01
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 04h10.


 
 
 
 
Partenaires

Hébergement Web