#1 Le 06/08/2008, à 14:17
- nina008
Sujet : appel d'un script shell dans un autre script shell
Bonjour tous le monde.
Je suis entrain d'ecrire un script shell bash nommé 'script1', je veux que ce dernier appel un autre'script2'
J'ai fait cela dans 'script1' mais ça ne marche pas, il accede au deuxieme script mais il m'affiche des erreurs:
$(./script2)
et j'ai bien fait chmod u+x sur script2
merci pour votre aide.
#2 Le 06/08/2008, à 14:39
- whalexis
Re : Sujet : appel d'un script shell dans un autre script shell
Salut,
Est ce que tu as lancé le deuxième script seul pour voir s'il comportait des erreurs?
#3 Le 06/08/2008, à 14:41
- jrev
Re : Sujet : appel d'un script shell dans un autre script shell
Bonjour,
Il faut peut-être que le script2 renvoit en fin de scipt sur le script1 pour pouvoir le terminer
Mal nommer les choses, c'est ajouter au malheur du monde
Hors ligne
#4 Le 06/08/2008, à 14:41
- rniamo
Re : Sujet : appel d'un script shell dans un autre script shell
si je fais s2.sh :
#!/bin/bash
echo "test 2";
./s1.sh
ça marche
< Quelques un des mes programmes | Cuisine Facile (pour les gourmands) | Fast MVC for PHP >
\ ^__^
\ (o o)\_______
(___)\ )\
Hors ligne
#5 Le 06/08/2008, à 15:28
- nina008
Re : Sujet : appel d'un script shell dans un autre script shell
Salut,
Est ce que tu as lancé le deuxième script seul pour voir s'il comportait des erreurs?
Merci pour la reponse
oui je l'ai lancé et il marchais bien
#6 Le 06/08/2008, à 17:49
- BorX
Re : Sujet : appel d'un script shell dans un autre script shell
Salut,
Je ne comprends pas trop ta question...
Ça, ça marche :
script1 :
#!/bin/bash echo "Je suis dans script1" ./script2
script2 :
#!/bin/bash echo "Je suis dans script2"
Exécution :
$ chmod +x script? $ ./script1 Je suis dans script1 Je suis dans script2
Mais ta syntaxe $(./script2) sert à balancer le résultat de script2 quelque part...
Par exemple :
script1 :
#!/bin/bash echo "Je suis dans script1" uneVariable=$(./script2) echo "Affichage du résultat de script 2 : $uneVariable"
Exécution :
$ ./script1 Je suis dans script1 Affichage du résultat de script 2 : Je suis dans script2
Dernière modification par BorX (Le 06/08/2008, à 18:00)
Hors ligne
#7 Le 07/08/2008, à 08:21
- nina008
Re : Sujet : appel d'un script shell dans un autre script shell
Merci pour la reponse.
ça marche très bien.
#8 Le 07/08/2008, à 08:24
- nina008
Re : Sujet : appel d'un script shell dans un autre script shell
Je veux utiliser un 'cron' pour lancer mon script.
Svp donnez moi des liens intéréssants pour son utilisation.
#9 Le 07/08/2008, à 08:28
- valAa
Re : Sujet : appel d'un script shell dans un autre script shell
Hors ligne
#10 Le 07/08/2008, à 09:21
- nina008
Re : Sujet : appel d'un script shell dans un autre script shell
Grand merci pour l'aide.
#11 Le 10/08/2008, à 09:48
- nina008
Re : Sujet : appel d'un script shell dans un autre script shell
Bonjour,
Je veux lancé mon script shell à 9h:45 le 10 aout.
Donc je lance mon script avec la comande:
45 9 10 8 * ./script
Il me fait ce message d'erreur: 45 : commande introuvable
Je dois rajouté quoi au fichier: /tmp/crontab.MuVBcY/contrab
Merci pour votre aide.
#12 Le 10/08/2008, à 10:43
- nina008
Re : Sujet : appel d'un script shell dans un autre script shell
J'ai configurer le cron pour qu'il me lance mon script à une date précise, mais comment je peux voir le resultat de mon script.
Merci
#13 Le 10/08/2008, à 21:24
- thy
Re : Sujet : appel d'un script shell dans un autre script shell
salut nina008
tu peux demander a ton script de faire un fichier de log en
redirigeant la sortie vers un fichier
./script1 > log
ou alors lancer ton script dans un terminal
#cette syntaxe devrai marcher
ton_terminal script1
Hors ligne
#14 Le 11/08/2008, à 11:30
- nina008
Re : Sujet : appel d'un script shell dans un autre script shell
Merci pour la réponse,
J'ia fait comme ceci:
0-59/3 * * * * monscript >> /tmp/essai_cron.txt
et je voie bien le changement dans le fichier essai_cron.txt.
Mais le problème est que mon script lance la commande rsync qui fait la copie d'une source à une destination. donc moi je dois donner les repertoires sources et destinatoin à mon script shell.
cad ds le terminal je lance le script comme ceci:
./monscript source user@ip: destination
Svp pouriez vous me dire comment rajouter ça dans le cron.
Merci
#15 Le 11/08/2008, à 15:16
- thy
Re : Sujet : appel d'un script shell dans un autre script shell
ya pas de raisons que ça marche pas comme ça
0-59/3 * * * * monscript source user@ip: destination >> /tmp/essai_cron.txt
ou alors j'ai pas bien compris ton problème
Hors ligne
#16 Le 11/08/2008, à 16:42
- nina008
Re : Sujet : appel d'un script shell dans un autre script shell
mais je voie aucun changement dans le fichier essai-cron.
et aucun fichier n'est envoyé vers le destinataire.
#17 Le 12/08/2008, à 10:24
- nina008
Re : Sujet : appel d'un script shell dans un autre script shell
Merci bien pour vos reponses, ça marche bien
Mon probleme maintenant est de lancer le script avec des options cad comme ceci
./script -s source -d user@ip:dest
et si jammais j'oublie un parametre oubien j'ecri mal la commande, ça m'affiche um message d'erreur,du genre je rajoute à mon script
usage ()
{
echo "Usage: $0 -s source -d dest" >&2
}
if [ $# -eq 0 ]; then
usage
fi
Svp, comment je peux faire ceci,depuis le terminal ça m'affiche bien mais avec cron je voie pas comment le faire ?
Merci
#18 Le 12/08/2008, à 10:55
- BorX
Re : Sujet : appel d'un script shell dans un autre script shell
Tu peux rediriger la sortie d'erreur vers un fichier (comme tu le fais pour la sortie standard) :
0-59/3 * * * * monscript source user@ip: destination >> /tmp/essai_cron.txt 2>/tmp/essai_cron.err
Si tu veux tout balancer dans le même fichier, tu peux rediriger la sortie d'erreur vers la sortie standard avec de rediriger la sortie standard vers un fichier
0-59/3 * * * * monscript source user@ip: destination 2>&1 >> /tmp/essai_cron.txt
Hors ligne
#19 Le 12/08/2008, à 11:24
- nina008
Re : Sujet : appel d'un script shell dans un autre script shell
Merci pour la réponse.
#20 Le 12/08/2008, à 11:29
- nina008
Re : Sujet : appel d'un script shell dans un autre script shell
pouriez vous me dire comment j'utilise getopts pour recupérer les paramètres -s et -d, ou donnez moi un lien interessant svp.
Merci
#21 Le 12/08/2008, à 12:00
- Totor
Re : Sujet : appel d'un script shell dans un autre script shell
rien de mieux que la doc officielle :
man bash
et à défaut google
-- Lucid Lynx --
Hors ligne
#22 Le 12/08/2008, à 14:57
- HP
Re : Sujet : appel d'un script shell dans un autre script shell
rien de mieux que la doc officielle :
man bash
et à défaut google
C'est sûr que Google pour getopts… je pense que c'est grave le top…
C'est très constructif le coup de Google (ou du man)… surtout sur quelque chose comme getopts ; je pense…
Pour info, le man bash à propos de getopts :
getopts optstring name[args]
getopts is used by shell procedures to parse positional parameters. optstring contains the option
characters to be recognized; if a character is followed by a colon, the option is expected to have an
argument, which should be separated from it by white space. The colon and question mark char-
acters may not be used as option characters. Each time it is invoked, getopts places the next
option in the shell variable name, initializing nameif it does not exist, and the index of the next
argument to be processed into the variable OPTIND. OPTIND is initialized to 1 each time the shell
or a shell script is invoked. When an option requires an argument, getopts places that argument
into the variable OPTARG. The shell does not reset OPTIND automatically; it must be manually
reset between multiple calls to getopts within the same shell invocation if a newset of parameters
is to be used.
Voilà, je pense qu'avec çà, on est aidés
Pour nina008, tu peux, pour commencer, essayer : Handling positional parameters et Small getopts tutorial…
cat /dev/urandom >/dev/null 2>&1 #github
Hors ligne
#23 Le 12/08/2008, à 16:06
- Totor
Re : Sujet : appel d'un script shell dans un autre script shell
C'est sûr que Google pour getopts… je pense que c'est grave le top…
C'est très constructif le coup de Google (ou du man)… surtout sur quelque chose comme getopts ; je pense…
Voilà, je pense qu'avec çà, on est aidés
Désolé mais c'était volontaire pour montrer que la réponse peut être tout aussi "pauvre" que la démarche qui est de demander sans avoir procéder à une recherche personnelle auparavant.
Attendre que tombe du ciel la réponse toute faite ne me parait pas une démarche très constructive non plus ... un peu de recherche ne fait pas de mal (on nous demande de fournir une doc alors qu'une simple recherche sur google fournie pléthore de liens)... se faire sa propre idée sur les docs aussi (référence à la qualité des docs)...
En gros, c'est l'un des éternels débas : je suis partisant d'aider dès lors qu'il y a un effort en amont.
Par ailleurs, je ne me serais pas permis cette petite remarque sans avoir déjà participer à la résolution de quelques fils...et de façon constructives (enfin, je l'espère !)
-- Lucid Lynx --
Hors ligne
#24 Le 13/08/2008, à 11:34
- nina008
Re : Sujet : appel d'un script shell dans un autre script shell
Merci beaucoup pour les liens, c'est exactement ce que je voulais.