[Shell] Programme fils dans un script
Résolu/Fermé
A voir également:
- [Shell] Programme fils dans un script
- Script vidéo youtube - Guide
- Programme demarrage windows 10 - Guide
- Classic shell windows 11 - Télécharger - Personnalisation
- Cette action ne peut pas être réalisée car le fichier est ouvert dans un autre programme - Guide
6 réponses
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
11 juin 2010 à 09:54
11 juin 2010 à 09:54
Salut,
L'inconvénient c'est que cela pose une condition, il faut que le script qui précède "&&" se soit fini correctement, sans quoi la condition n'étant pas vérifiée, l'enchainement ne se fait pas ;-\
Une autre possibilité, est de lancer chaque script en arrière plan et d'attendre qu'il soit fini :
;-))
LancerScript.ksh && ScriptALancer1.ksh && ScriptALancer2.ksh && ScriptALancer3.ksh && ScriptALancer4.ksh && ScriptALancer5.ksh
L'inconvénient c'est que cela pose une condition, il faut que le script qui précède "&&" se soit fini correctement, sans quoi la condition n'étant pas vérifiée, l'enchainement ne se fait pas ;-\
Une autre possibilité, est de lancer chaque script en arrière plan et d'attendre qu'il soit fini :
LancerScript.ksh &;wait; ScriptALancer1.ksh &;wait; ScriptALancer2.ksh &;wait; ScriptALancer3.ksh &;wait; ScriptALancer4.ksh &;wait; ScriptALancer5.ksh
;-))
dubcek
Messages postés
18758
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
24 décembre 2024
5 623
11 juin 2010 à 09:56
11 juin 2010 à 09:56
hello
le fork, en shell c'est &
tous les scripts vont démarrer en arrière plan, en même temps
la commande wait permet d'attendre qu'ils finissent (tous ou certains)
le fork, en shell c'est &
ScriptALancer1.ksh & ScriptALancer2.ksh & ScriptALancer3.ksh & ScriptALancer4.ksh & ScriptALancer5.ksh &
tous les scripts vont démarrer en arrière plan, en même temps
la commande wait permet d'attendre qu'ils finissent (tous ou certains)
Hum, merci de vos réponses.
Sauf que (forcément faut un sauf :p)
Tu lance le script avec des "options".
Je voudrais plutôt lancer le script de cette façon :
/home/AutomatisationSem/Script_test>LancerScript.ksh
Et c'est "dans" le script que tout se lance.
(Je sais pas si je suis claire ou pas ?)
En fait, j'en ai besoin c'est pour une entreprise et il y a pour l'instant 31 scripts à lancer alors ouch ! Et ça peut varier !
Au début de mon programme LancerScript.ksh je fais un ls pour récupérer le nom des scripts à lancer.
Voici le code que j'ai pour l'instant dans LancerScript.ksh :
MSGSUIVI="========= Debut du traitements =========";fonction_ecrire_suivi
MSGSUIVI="Récupération des script";fonction_ecrire_suivi
echo "Récupération des script"
ListScript='ls'
NbScript='echo $ListScript|awk -F' ' '{print NF}''
NbScript=$((${NbScript}-1))
indexScript=1
#on met les scripts dans un tableau
while [ $indexScript != $NbScript ]
do
Script='echo ${ListScript}|awk -F' ' -v i=$((${indexScript}+1)) '{print $i};' | sed -e "s/ //1"'
TabScript[$indexScript]=$Scriptt
indexScript=$((${indexScript}+1))
done
Et ici je lance les scripts se trouvant dans le répertoire les uns après les autres
MSGSUIVI="Tout les script ont été lancé";fonction_ecrire_suivi
MSGSUIVI="========= Fin du traitements =========";fonction_ecrire_suivi
echo "Fin du traitement a "'date '+%H:%M:%S''
RETSH=$OK;fonction_fin
Sauf que (forcément faut un sauf :p)
Tu lance le script avec des "options".
Je voudrais plutôt lancer le script de cette façon :
/home/AutomatisationSem/Script_test>LancerScript.ksh
Et c'est "dans" le script que tout se lance.
(Je sais pas si je suis claire ou pas ?)
En fait, j'en ai besoin c'est pour une entreprise et il y a pour l'instant 31 scripts à lancer alors ouch ! Et ça peut varier !
Au début de mon programme LancerScript.ksh je fais un ls pour récupérer le nom des scripts à lancer.
Voici le code que j'ai pour l'instant dans LancerScript.ksh :
MSGSUIVI="========= Debut du traitements =========";fonction_ecrire_suivi
MSGSUIVI="Récupération des script";fonction_ecrire_suivi
echo "Récupération des script"
ListScript='ls'
NbScript='echo $ListScript|awk -F' ' '{print NF}''
NbScript=$((${NbScript}-1))
indexScript=1
#on met les scripts dans un tableau
while [ $indexScript != $NbScript ]
do
Script='echo ${ListScript}|awk -F' ' -v i=$((${indexScript}+1)) '{print $i};' | sed -e "s/ //1"'
TabScript[$indexScript]=$Scriptt
indexScript=$((${indexScript}+1))
done
Et ici je lance les scripts se trouvant dans le répertoire les uns après les autres
MSGSUIVI="Tout les script ont été lancé";fonction_ecrire_suivi
MSGSUIVI="========= Fin du traitements =========";fonction_ecrire_suivi
echo "Fin du traitement a "'date '+%H:%M:%S''
RETSH=$OK;fonction_fin
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
11 juin 2010 à 10:15
11 juin 2010 à 10:15
A ce moment là, rajoute une boucle dans ton script :
Devrait fair l'affaire
for fich in $(ls *.sh | grep -v "$0") do ./"${fich}" & wait done
Devrait fair l'affaire
Mouarf :/
Tit soucis, j'ai pas l'impression qu'il soit d'accord avec la syntaxe. J'ai comme erreur :
' unexpected.ksh[73]: syntax error at line 77 : 'do
Voilà comment j'ai modifier mon code :
MSGSUIVI="========= Debut du traitements =========";fonction_ecrire_suivi
MSGSUIVI="Récupération des script";fonction_ecrire_suivi
echo "Récupération des script"
#ListScript='ls'
#NbScript='echo $ListScript|awk -F' ' '{print NF}''
#NbScript=$((${NbScript}-1))
#indexScript=1
#on met les scripts dans un tableau
#while [ $indexScript != $NbScript ]
#do
# Script='echo ${ListScript}|awk -F' ' -v i=$((${indexScript}+1)) '{print $i};' | sed -e "s/ //1"'
# TabScript[$indexScript]=$Script
# echo ${TabScript[$indexScript]}
# indexScript=$((${indexScript}+1))
#done
echo "lancement des scripts"
for fich in $(ls *.sh | grep -v "$0")
do
"${fich}" &
wait
done
MSGSUIVI="Tout les script ont été lancé";fonction_ecrire_suivi
MSGSUIVI="========= Fin du traitements =========";fonction_ecrire_suivi
echo "Fin du traitement a "'date '+%H:%M:%S''
RETSH=$OK;fonction_fin
Tit soucis, j'ai pas l'impression qu'il soit d'accord avec la syntaxe. J'ai comme erreur :
' unexpected.ksh[73]: syntax error at line 77 : 'do
Voilà comment j'ai modifier mon code :
MSGSUIVI="========= Debut du traitements =========";fonction_ecrire_suivi
MSGSUIVI="Récupération des script";fonction_ecrire_suivi
echo "Récupération des script"
#ListScript='ls'
#NbScript='echo $ListScript|awk -F' ' '{print NF}''
#NbScript=$((${NbScript}-1))
#indexScript=1
#on met les scripts dans un tableau
#while [ $indexScript != $NbScript ]
#do
# Script='echo ${ListScript}|awk -F' ' -v i=$((${indexScript}+1)) '{print $i};' | sed -e "s/ //1"'
# TabScript[$indexScript]=$Script
# echo ${TabScript[$indexScript]}
# indexScript=$((${indexScript}+1))
#done
echo "lancement des scripts"
for fich in $(ls *.sh | grep -v "$0")
do
"${fich}" &
wait
done
MSGSUIVI="Tout les script ont été lancé";fonction_ecrire_suivi
MSGSUIVI="========= Fin du traitements =========";fonction_ecrire_suivi
echo "Fin du traitement a "'date '+%H:%M:%S''
RETSH=$OK;fonction_fin
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
11 juin 2010 à 10:28
11 juin 2010 à 10:28
Le "./" devant le nom du script n'est pas une option ;-\
for fich in $(ls *.sh | grep -v "$0") do ./"${fich}" & wait done
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
11 juin 2010 à 10:47
11 juin 2010 à 10:47
Oups ;-((
Modifie :
par
;-))
Modifie :
grep -v "$0"
par
grep -v "${0#*/}"
;-))
-_- bon on va y arriver mais ça marche toujours pas grrrrrrrrr
Voilà mon code :
MSGSUIVI="========= Debut du traitements =========";fonction_ecrire_suivi
MSGSUIVI="Récupération des script";fonction_ecrire_suivi
echo "Récupération des script"
echo "lancement des scripts"
for fich in $(ls *.ksh | grep -v "${0#*/}")
do
./"${fich}" &
wait
done
MSGSUIVI="Tout les script ont été lancé";fonction_ecrire_suivi
MSGSUIVI="========= Fin du traitements =========";fonction_ecrire_suivi
echo "Fin du traitement a "'date '+%H:%M:%S''
RETSH=$OK;fonction_fin
Tu peux m'expliquer l'expression régulière du grep s'il te plait ?
jviens de tester la boucle dans le prompt ça donne ça :
/home/AutomatisationSem/Script_test>for fich in $(ls *.ksh | grep -v "${0#*/}")
> do
> echo $fich
> done
usage: grep [-E|-F] [-c|-l|-q] [-bhinsvx] -e pattern_list...
[-f pattern_file...] [file...]
usage: grep [-E|-F] [-c|-l|-q] [-bhinsvx] [-e pattern_list...]
-f pattern_file... [file...]
usage: grep [-E|-F] [-c|-l|-q] [-bhinsvx] pattern [file...]
Voilà mon code :
MSGSUIVI="========= Debut du traitements =========";fonction_ecrire_suivi
MSGSUIVI="Récupération des script";fonction_ecrire_suivi
echo "Récupération des script"
echo "lancement des scripts"
for fich in $(ls *.ksh | grep -v "${0#*/}")
do
./"${fich}" &
wait
done
MSGSUIVI="Tout les script ont été lancé";fonction_ecrire_suivi
MSGSUIVI="========= Fin du traitements =========";fonction_ecrire_suivi
echo "Fin du traitement a "'date '+%H:%M:%S''
RETSH=$OK;fonction_fin
Tu peux m'expliquer l'expression régulière du grep s'il te plait ?
jviens de tester la boucle dans le prompt ça donne ça :
/home/AutomatisationSem/Script_test>for fich in $(ls *.ksh | grep -v "${0#*/}")
> do
> echo $fich
> done
usage: grep [-E|-F] [-c|-l|-q] [-bhinsvx] -e pattern_list...
[-f pattern_file...] [file...]
usage: grep [-E|-F] [-c|-l|-q] [-bhinsvx] [-e pattern_list...]
-f pattern_file... [file...]
usage: grep [-E|-F] [-c|-l|-q] [-bhinsvx] pattern [file...]
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
11 juin 2010 à 11:19
11 juin 2010 à 11:19
grep -v "$0"
Exclu le script "LancerScript.ksh" (contenu dans la variable $0) du traitement.
grep -v "${0#*/}"
Comme la variable "$0" renvoie en fait "./LancerScript.ksh", on fait en sorte de supprimer le "./" du motif de recherche...
Après je ne sais pas pourquoi ton script foire ;-((
Tu as un message d'erreur ?
Il faudrait que tu rajoute après le shebang "set -xv" pour rendre ton script verbeux et voir où ça bugue ;-((
Exclu le script "LancerScript.ksh" (contenu dans la variable $0) du traitement.
grep -v "${0#*/}"
Comme la variable "$0" renvoie en fait "./LancerScript.ksh", on fait en sorte de supprimer le "./" du motif de recherche...
Après je ne sais pas pourquoi ton script foire ;-((
Tu as un message d'erreur ?
Il faudrait que tu rajoute après le shebang "set -xv" pour rendre ton script verbeux et voir où ça bugue ;-((
#! /bin/ksh set -xv
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
dubcek
Messages postés
18758
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
24 décembre 2024
5 623
11 juin 2010 à 12:36
11 juin 2010 à 12:36
$ cat LancerScript.ksh #!/bin/ksh for fich in ScriptALancer*.ksh ; do chmod u+x ${fich} ./${fich} & done wait
AHHHHHHHHHH ! presque (ou pas :p)
Bon j'ai modifier le code et voilà ce qu'il me donne :
- le code :
MSGSUIVI="========= Debut du traitements =========";fonction_ecrire_suivi
MSGSUIVI="Récupération des script";fonction_ecrire_suivi
echo "Récupération des script"
#ListScript='ls'
#NbScript='echo $ListScript|awk -F' ' '{print NF}''
#NbScript=$((${NbScript}-1))
#indexScript=1
#on met les scripts dans un tableau
#while [ $indexScript != $NbScript ]
#do
# Script='echo ${ListScript}|awk -F' ' -v i=$((${indexScript}+1)) '{print $i};' | sed -e "s/ //1"'
# TabScript[$indexScript]=$Script
# echo ${TabScript[$indexScript]}
# indexScript=$((${indexScript}+1))
#done
echo "lancement des scripts"
for fich in 'ls Test_*.ksh'
do
ksh ${fich} &
wait
done
MSGSUIVI="Tout les script ont été lancé";fonction_ecrire_suivi
MSGSUIVI="========= Fin du traitements =========";fonction_ecrire_suivi
echo "Fin du traitement a "'date '+%H:%M:%S''
RETSH=$OK;fonction_fin
- le prompt :
/home/AutomatisationSem/Script_ksh LancerScript.ksh
Debut du traitement a 13:06:54
MSGSUIVI="========= Debut du traitements =========";fonction_ecrire_suivi
+ MSGSUIVI========== Debut du traitements =========
+ fonction_ecrire_suivi
+ echo SUIVI : ========= Debut du traitements =========
+ 1>> /home/user14/SAFRANGenericGuidingv2Unix_trunk/donnees_TD/17-LCP/Automatisation_Semaphore/Logs/LancerScript.ksh_20100611.log
MSGSUIVI="Récupération des script";fonction_ecrire_suivi
+ MSGSUIVI=Récupération des script
+ fonction_ecrire_suivi
+ echo SUIVI : Récupération des script
+ 1>> /home/user14/SAFRANGenericGuidingv2Unix_trunk/donnees_TD/17-LCP/Automatisation_Semaphore/Logs/LancerScript.ksh_20100611.log
echo "Récupération des script"
+ echo Récupération des script
Récupération des script
#ListScript='ls'
#NbScript='echo $ListScript|awk -F' ' '{print NF}''
for fich in Test_*.ksh ; do
' unexpected.ksh[74]: syntax error at line 83 : 'do
SRV110:/home/user14/SAFRANGenericGuidingv2Unix_trunk/AutomatisationSem/Script_ksh LancerScript.ksh
Debut du traitement a 13:07:58
MSGSUIVI="========= Debut du traitements =========";fonction_ecrire_suivi
+ MSGSUIVI========== Debut du traitements =========
+ fonction_ecrire_suivi
+ echo SUIVI : ========= Debut du traitements =========
+ 1>> /home/user14/SAFRANGenericGuidingv2Unix_trunk/donnees_TD/17-LCP/Automatisation_Semaphore/Logs/LancerScript.ksh_20100611.log
MSGSUIVI="Récupération des script";fonction_ecrire_suivi
+ MSGSUIVI=Récupération des script
+ fonction_ecrire_suivi
+ echo SUIVI : Récupération des script
+ 1>> /home/user14/SAFRANGenericGuidingv2Unix_trunk/donnees_TD/17-LCP/Automatisation_Semaphore/Logs/LancerScript.ksh_20100611.log
echo "Récupération des script"
+ echo Récupération des script
Récupération des script
echo "lancement des scripts"
+ echo lancement des scripts
lancement des scripts
for fich in 'ls Test_*.ksh'
do
ksh ${fich} &
wait
done
MSGSUIVI="Tout les script ont été lancé";fonction_ecrire_suivi
MSGSUIVI="========= Fin du traitements =========";fonction_ecrire_suivi
echo "Fin du traitement a "'date '+%H:%M:%S''
RETSH=$OK;fonction_fin
LancerScript.ksh[74]: syntax error at line 89 : 'for' unmatched
Maintenant c'est le for qui bug u_u
Bon j'ai modifier le code et voilà ce qu'il me donne :
- le code :
MSGSUIVI="========= Debut du traitements =========";fonction_ecrire_suivi
MSGSUIVI="Récupération des script";fonction_ecrire_suivi
echo "Récupération des script"
#ListScript='ls'
#NbScript='echo $ListScript|awk -F' ' '{print NF}''
#NbScript=$((${NbScript}-1))
#indexScript=1
#on met les scripts dans un tableau
#while [ $indexScript != $NbScript ]
#do
# Script='echo ${ListScript}|awk -F' ' -v i=$((${indexScript}+1)) '{print $i};' | sed -e "s/ //1"'
# TabScript[$indexScript]=$Script
# echo ${TabScript[$indexScript]}
# indexScript=$((${indexScript}+1))
#done
echo "lancement des scripts"
for fich in 'ls Test_*.ksh'
do
ksh ${fich} &
wait
done
MSGSUIVI="Tout les script ont été lancé";fonction_ecrire_suivi
MSGSUIVI="========= Fin du traitements =========";fonction_ecrire_suivi
echo "Fin du traitement a "'date '+%H:%M:%S''
RETSH=$OK;fonction_fin
- le prompt :
/home/AutomatisationSem/Script_ksh LancerScript.ksh
Debut du traitement a 13:06:54
MSGSUIVI="========= Debut du traitements =========";fonction_ecrire_suivi
+ MSGSUIVI========== Debut du traitements =========
+ fonction_ecrire_suivi
+ echo SUIVI : ========= Debut du traitements =========
+ 1>> /home/user14/SAFRANGenericGuidingv2Unix_trunk/donnees_TD/17-LCP/Automatisation_Semaphore/Logs/LancerScript.ksh_20100611.log
MSGSUIVI="Récupération des script";fonction_ecrire_suivi
+ MSGSUIVI=Récupération des script
+ fonction_ecrire_suivi
+ echo SUIVI : Récupération des script
+ 1>> /home/user14/SAFRANGenericGuidingv2Unix_trunk/donnees_TD/17-LCP/Automatisation_Semaphore/Logs/LancerScript.ksh_20100611.log
echo "Récupération des script"
+ echo Récupération des script
Récupération des script
#ListScript='ls'
#NbScript='echo $ListScript|awk -F' ' '{print NF}''
for fich in Test_*.ksh ; do
' unexpected.ksh[74]: syntax error at line 83 : 'do
SRV110:/home/user14/SAFRANGenericGuidingv2Unix_trunk/AutomatisationSem/Script_ksh LancerScript.ksh
Debut du traitement a 13:07:58
MSGSUIVI="========= Debut du traitements =========";fonction_ecrire_suivi
+ MSGSUIVI========== Debut du traitements =========
+ fonction_ecrire_suivi
+ echo SUIVI : ========= Debut du traitements =========
+ 1>> /home/user14/SAFRANGenericGuidingv2Unix_trunk/donnees_TD/17-LCP/Automatisation_Semaphore/Logs/LancerScript.ksh_20100611.log
MSGSUIVI="Récupération des script";fonction_ecrire_suivi
+ MSGSUIVI=Récupération des script
+ fonction_ecrire_suivi
+ echo SUIVI : Récupération des script
+ 1>> /home/user14/SAFRANGenericGuidingv2Unix_trunk/donnees_TD/17-LCP/Automatisation_Semaphore/Logs/LancerScript.ksh_20100611.log
echo "Récupération des script"
+ echo Récupération des script
Récupération des script
echo "lancement des scripts"
+ echo lancement des scripts
lancement des scripts
for fich in 'ls Test_*.ksh'
do
ksh ${fich} &
wait
done
MSGSUIVI="Tout les script ont été lancé";fonction_ecrire_suivi
MSGSUIVI="========= Fin du traitements =========";fonction_ecrire_suivi
echo "Fin du traitement a "'date '+%H:%M:%S''
RETSH=$OK;fonction_fin
LancerScript.ksh[74]: syntax error at line 89 : 'for' unmatched
Maintenant c'est le for qui bug u_u
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
11 juin 2010 à 14:21
11 juin 2010 à 14:21
Et avec juste :
for fich in Test_*.ksh
YEAH !!!!! ça marche ;)
je suppose que le problème (tout con vous allez rire d'ailleurs :p) vient tout simplement d'un caractère caché.
Effectivement, mes scripts sont écrit sous Windows avec UltraEdit. Le truc qui va vous faire bien rire, c'est que j'ai l'impression que le copier/coller sauvage il n'apprécie pas :p.
Du coup, là je viens de réécrire mon code et de virer les lignes blanches, puis j'ai reconverti (au cas où ça venait de là :p). Et là je viens d'avoir le plaisir de lancer le script et qu'il fonctionne =)
Allez pour le plaisir des yeux voici le fameux code :
#!/bin/ksh
#set -x
echo "Debut du traitement a "'date '+%H:%M:%S''
#######################################################################
# Debut modif : initialisation des variables
NbParam=$#
#Declaration du nom du fichier trace
FICLOG="${0}_'date +%Y%m%d'.log"
#Declaration de variable
KO=255
OK=0
# Fin modif : initialisation des variables
#######################################################################
if [ $NbParam -eq 1 ]
then
if [ $1 = "--help" ] || [ $1 = "-h" ]
then
echo "\tUsage de $0 :"
echo "\tUsage : $0"
echo "\tUsage : Lance tout les scripts se trouvant dans le Repertoire Script_test"
exit $OK
fi
fi
#######################################################################
# Debut modif : creation librairies
#chargement des fonctions de trace
. $HOME/donnees_TD/17-LCP/Automatisation_Semaphore/Automatisation/libtracestest.ksh
#valorisation du nom du script
NOM_SCRIPT='basename $0'
# Fin modif : creation librairies
#######################################################################
#######################################################################
# Debut modif : Ecriture dans le fichier trace
#Controle et initialisation de la trace
FICLOG='fonction_initialisation_trace ${NOM_SCRIPT}'
# Fin modif : Ecriture dans le fichier trace
#######################################################################
NOMTRT=$0
#Initialisation du fichier trace
RETSH=$KO;fonction_debut
#######################################################################
# Debut des traitements
#######################################################################
set -xv
MSGSUIVI="========= Debut du traitements =========";fonction_ecrire_suivi
MSGSUIVI="Récupération des script";fonction_ecrire_suivi
echo "lancement des scripts"
for fich in Test_*.ksh
do
ksh ${fich} &
wait
done
MSGSUIVI="Tout les script ont été lancé";fonction_ecrire_suivi
MSGSUIVI="========= Fin du traitements =========";fonction_ecrire_suivi
echo "Fin du traitement a "'date '+%H:%M:%S''
RETSH=$OK;fonction_fin
(bon oki je dois virer des affectation qui sont en trop ;) )
Merci à tous ceux qui m'ont aidés =)
je suppose que le problème (tout con vous allez rire d'ailleurs :p) vient tout simplement d'un caractère caché.
Effectivement, mes scripts sont écrit sous Windows avec UltraEdit. Le truc qui va vous faire bien rire, c'est que j'ai l'impression que le copier/coller sauvage il n'apprécie pas :p.
Du coup, là je viens de réécrire mon code et de virer les lignes blanches, puis j'ai reconverti (au cas où ça venait de là :p). Et là je viens d'avoir le plaisir de lancer le script et qu'il fonctionne =)
Allez pour le plaisir des yeux voici le fameux code :
#!/bin/ksh
#set -x
echo "Debut du traitement a "'date '+%H:%M:%S''
#######################################################################
# Debut modif : initialisation des variables
NbParam=$#
#Declaration du nom du fichier trace
FICLOG="${0}_'date +%Y%m%d'.log"
#Declaration de variable
KO=255
OK=0
# Fin modif : initialisation des variables
#######################################################################
if [ $NbParam -eq 1 ]
then
if [ $1 = "--help" ] || [ $1 = "-h" ]
then
echo "\tUsage de $0 :"
echo "\tUsage : $0"
echo "\tUsage : Lance tout les scripts se trouvant dans le Repertoire Script_test"
exit $OK
fi
fi
#######################################################################
# Debut modif : creation librairies
#chargement des fonctions de trace
. $HOME/donnees_TD/17-LCP/Automatisation_Semaphore/Automatisation/libtracestest.ksh
#valorisation du nom du script
NOM_SCRIPT='basename $0'
# Fin modif : creation librairies
#######################################################################
#######################################################################
# Debut modif : Ecriture dans le fichier trace
#Controle et initialisation de la trace
FICLOG='fonction_initialisation_trace ${NOM_SCRIPT}'
# Fin modif : Ecriture dans le fichier trace
#######################################################################
NOMTRT=$0
#Initialisation du fichier trace
RETSH=$KO;fonction_debut
#######################################################################
# Debut des traitements
#######################################################################
set -xv
MSGSUIVI="========= Debut du traitements =========";fonction_ecrire_suivi
MSGSUIVI="Récupération des script";fonction_ecrire_suivi
echo "lancement des scripts"
for fich in Test_*.ksh
do
ksh ${fich} &
wait
done
MSGSUIVI="Tout les script ont été lancé";fonction_ecrire_suivi
MSGSUIVI="========= Fin du traitements =========";fonction_ecrire_suivi
echo "Fin du traitement a "'date '+%H:%M:%S''
RETSH=$OK;fonction_fin
(bon oki je dois virer des affectation qui sont en trop ;) )
Merci à tous ceux qui m'ont aidés =)
11 juin 2010 à 10:05
LancerScript.ksh ; ScriptALancer1.ksh ; ScriptALancer2.ksh ; ScriptALancer3.ksh ; ScriptALancer4.ksh ; ScriptALancer5.ksh
Lance les script les un après les autre non ?
juste ajouter peut être ./ pour avoir le chemin.
Ou alors la commande source ?
11 juin 2010 à 10:12