A voir également:
- Perl et les commandes system
- Reboot system now - Guide
- Invite de commandes - Guide
- Cette action ne peut pas être réalisée car le fichier est ouvert dans system - Guide
- Commandes terminal mac - Guide
- Advanced system care - Télécharger - Optimisation
12 réponses
dubcek
Messages postés
18753
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
7 novembre 2024
5 619
23 févr. 2009 à 09:44
23 févr. 2009 à 09:44
on ne reste dans le groupe pole2 que entre
newgrp pole2<< XX
<ici je suis pole2>
XX
je ne suis plus pole2
si le prog perl doit être pole2, il faut faire
newgrp pole2<< XX
< prog Perl>
XX
newgrp pole2<< XX
<ici je suis pole2>
XX
je ne suis plus pole2
si le prog perl doit être pole2, il faut faire
newgrp pole2<< XX
< prog Perl>
XX
dubcek
Messages postés
18753
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
7 novembre 2024
5 619
20 févr. 2009 à 14:19
20 févr. 2009 à 14:19
hello
newgrp group << XX
cmd
cmd
XX
newgrp group << XX
cmd
cmd
XX
Merci pour la reponse si rapide.
Je debute en Perl et si tu pouvez m'en dire plus je t'en remercierai
Karim
Je debute en Perl et si tu pouvez m'en dire plus je t'en remercierai
Karim
dubcek
Messages postés
18753
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
7 novembre 2024
5 619
20 févr. 2009 à 14:34
20 févr. 2009 à 14:34
ca c'est ce qu'il faut faire pour exécuter des commandes en newgrp dans un shell Unix. Comment exécutes-tu la commande en perl ?
essaye system("newgrp group <<XX ; cmd ; cmd\
XX");
essaye system("newgrp group <<XX ; cmd ; cmd\
XX");
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
dubcek
Messages postés
18753
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
7 novembre 2024
5 619
20 févr. 2009 à 14:44
20 févr. 2009 à 14:44
cela redirige les commandes jusqu'a XX en début de ligne.
tu peux tester en shell
newgrp group ; id -a ; echo > fichier1 ; ls -l fichier1
newgrp group << XX
id -a ; echo > fichier2 ; ls -l fichier2
XX
tu peux tester en shell
newgrp group ; id -a ; echo > fichier1 ; ls -l fichier1
newgrp group << XX
id -a ; echo > fichier2 ; ls -l fichier2
XX
Desolé de te deranger une nouvelle fois,
J'ai testé la commande et ça n'a pas marché.
J'explique ce que j'ai fait. Sous unix et perl. je dois faire l'erreur du debutant
.
.
.
system("newgrp pole2 << XX");
.
.
.
et là j'ai une erreur
Bareword found where operator expected at /home/st27247/ScriptPerl/EssaiScriptKarim/BOATEST_13_02_09/creationIHM.pl line 538, near "print "Les"
(Might be a runaway multi-line "" string starting on line 530)
(Do you need to predeclare print?)
syntax error at /home/st27247/ScriptPerl/EssaiScriptKarim/BOATEST_13_02_09/creationIHM.pl line 530, near "XX;"
J'ai testé la commande et ça n'a pas marché.
J'explique ce que j'ai fait. Sous unix et perl. je dois faire l'erreur du debutant
.
.
.
system("newgrp pole2 << XX");
.
.
.
et là j'ai une erreur
Bareword found where operator expected at /home/st27247/ScriptPerl/EssaiScriptKarim/BOATEST_13_02_09/creationIHM.pl line 538, near "print "Les"
(Might be a runaway multi-line "" string starting on line 530)
(Do you need to predeclare print?)
syntax error at /home/st27247/ScriptPerl/EssaiScriptKarim/BOATEST_13_02_09/creationIHM.pl line 530, near "XX;"
dubcek
Messages postés
18753
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
7 novembre 2024
5 619
20 févr. 2009 à 15:09
20 févr. 2009 à 15:09
le plus simple, tu mets tes commandes newgrp ... dans un script, tu le rends exécutable
chmod u+x script
et depuis perl
system("script");
chmod u+x script
et depuis perl
system("script");
Merci de prendre du temps avec moi.
J'ai essayé cette façon de faire mais là des qu'on arrive sur la ligne newgrp.... du script ksh ça me bloque. On voit quand même que le script est lancé.
script ksh:
#!/bin/ksh
echo "debut de programme"
newgrp pole2
echo "fin de programme"
resultat:
debut de programme
J'ai essayé cette façon de faire mais là des qu'on arrive sur la ligne newgrp.... du script ksh ça me bloque. On voit quand même que le script est lancé.
script ksh:
#!/bin/ksh
echo "debut de programme"
newgrp pole2
echo "fin de programme"
resultat:
debut de programme
dubcek
Messages postés
18753
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
7 novembre 2024
5 619
20 févr. 2009 à 15:37
20 févr. 2009 à 15:37
et comme ca
#!/bin/ksh
echo "debut de programme"
newgrp pole2 <<XX
echo "fin de programme"
XX
#!/bin/ksh
echo "debut de programme"
newgrp pole2 <<XX
echo "fin de programme"
XX
Comme tu m'as beaucoup aidé je reviens vers toi en esperant ne pas trop t'ennuyer.
Je suis en train de sourcer un environnement en procedant de la façon suivante:
#!/bin/ksh
echo "appel du programme essai"
# Environnement de marcel
newgrp pole2<<XX
. /home/pole2/atelier_pole2_gdc_a380<<YY
echo "---------------------------------------------------------------"
echo "Atelier marcel => ${Loc_marcel}"
echo "Espace de developpement => ${ESPACE_DEV}"
echo "---------------------------------------------------------------"
echo "fin du programme essai"
XX
YY
resultat:
il bloque à la ligne qd je lance le script via perl
. /home/pole2/atelier_pole2_gdc_a380<<YY
Je suis en train de sourcer un environnement en procedant de la façon suivante:
#!/bin/ksh
echo "appel du programme essai"
# Environnement de marcel
newgrp pole2<<XX
. /home/pole2/atelier_pole2_gdc_a380<<YY
echo "---------------------------------------------------------------"
echo "Atelier marcel => ${Loc_marcel}"
echo "Espace de developpement => ${ESPACE_DEV}"
echo "---------------------------------------------------------------"
echo "fin du programme essai"
XX
YY
resultat:
il bloque à la ligne qd je lance le script via perl
. /home/pole2/atelier_pole2_gdc_a380<<YY
dubcek
Messages postés
18753
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
7 novembre 2024
5 619
20 févr. 2009 à 16:09
20 févr. 2009 à 16:09
peut être:
newgrp pole2<<XX
. /home/pole2/atelier_pole2_gdc_a380<<YY
echo "---------------------------------------------------------------"
echo "Atelier marcel => ${Loc_marcel}"
echo "Espace de developpement => ${ESPACE_DEV}"
echo "---------------------------------------------------------------"
echo "fin du programme essai"
YY
XX
le << YY est-il nécessaire ?
newgrp pole2<<XX
. /home/pole2/atelier_pole2_gdc_a380<<YY
echo "---------------------------------------------------------------"
echo "Atelier marcel => ${Loc_marcel}"
echo "Espace de developpement => ${ESPACE_DEV}"
echo "---------------------------------------------------------------"
echo "fin du programme essai"
YY
XX
le << YY est-il nécessaire ?
effectivement <<YY n'est pas necessaire et il ne bloque plus sans. Par contre dans
echo "---------------------------------------------------------------"
echo "Atelier marcel => ${Loc_marcel}"
echo "Espace de developpement => ${ESPACE_DEV}"
echo "---------------------------------------------------------------"
il doit m'afficher
---------------------------------------------------------------
Atelier marcel => /home/pole2/FCDC/FCDC/ATELIER
Espace de developpement => /home/pole2/FCDC/FCDC
---------------------------------------------------------------
et il m'affiche
---------------------------------------------------------------
Atelier marcel => /home/cpiom_c/FCDC/FCDC/ATELIER
Espace de developpement => /home/cpiom_c/FCDC/FCDC
---------------------------------------------------------------
est ce que je me trompe dans la façon dont j'appelle la commande pour sourcer?
echo "---------------------------------------------------------------"
echo "Atelier marcel => ${Loc_marcel}"
echo "Espace de developpement => ${ESPACE_DEV}"
echo "---------------------------------------------------------------"
il doit m'afficher
---------------------------------------------------------------
Atelier marcel => /home/pole2/FCDC/FCDC/ATELIER
Espace de developpement => /home/pole2/FCDC/FCDC
---------------------------------------------------------------
et il m'affiche
---------------------------------------------------------------
Atelier marcel => /home/cpiom_c/FCDC/FCDC/ATELIER
Espace de developpement => /home/cpiom_c/FCDC/FCDC
---------------------------------------------------------------
est ce que je me trompe dans la façon dont j'appelle la commande pour sourcer?
dubcek
Messages postés
18753
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
7 novembre 2024
5 619
20 févr. 2009 à 16:23
20 févr. 2009 à 16:23
le . source bien
les variables sont définies dans /home/pole2/atelier_pole2_gdc_a380 ?
sont-elles exportées ?
dans /home/pole2 pole2 est un répertoire, dans newgrp pole2 pole2 est un groupe, 2 choses différentes
les variables sont définies dans /home/pole2/atelier_pole2_gdc_a380 ?
sont-elles exportées ?
dans /home/pole2 pole2 est un répertoire, dans newgrp pole2 pole2 est un groupe, 2 choses différentes
Bonsoir,
désole mais je n'ai pas pu répondre avant. Effectivement pole2 est un groupe mais est aussi un répertoire.
Ce que doit faire le programme c'est de se mettre sur le groupe pole2 pour pouvoir ensuite lancer un environnement qui se trouve sous un répertoire pole2(qui a la même nom que le groupe dans ce cas).
Je suppose que je n'aurai pas de réponse ce soir alors bonne soirée à tous
Karim
désole mais je n'ai pas pu répondre avant. Effectivement pole2 est un groupe mais est aussi un répertoire.
Ce que doit faire le programme c'est de se mettre sur le groupe pole2 pour pouvoir ensuite lancer un environnement qui se trouve sous un répertoire pole2(qui a la même nom que le groupe dans ce cas).
Je suppose que je n'aurai pas de réponse ce soir alors bonne soirée à tous
Karim
dubcek
Messages postés
18753
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
7 novembre 2024
5 619
22 févr. 2009 à 09:11
22 févr. 2009 à 09:11
newgrp pole2 va mettre le shell dans le groupe pole2, ce qui va permettre de créer des fichiers appartenant au groupe pole2. pour le reste, comme le choix du répertoire, il n'y a rien d'automatique, c'est au script d'aller explicitement dans /home/pole2
Bon j'ai essayé. En fait le probleme vient toujours de fait qu'on ne change pas de groupe. J'essai de changer de groupe et j'affiche l'id mais on est toujours sur l'ancien groupe.
Je m'explique:
on est sous le groupe cpioc
debut du programme perl
...
system ("essai");
debut du programme essai pour se mettre sous le groupe pole2
#!/bin/ksh
echo "appel du programme essai"
# Definition de la version Marcel a utiliser
export MARCEL_ENV="/home/opt/MARCEL/0000750_AA/MARCEL_ENV/marcel_env"
# Environnement de marcel
newgrp pole2<<"$grp"
${grp}
fin du programme essai
On revient au programme perl
my $id = `id`
print "$id";
et là je reste sur le groupe cpioc. Je comprend pas
Karim
Je m'explique:
on est sous le groupe cpioc
debut du programme perl
...
system ("essai");
debut du programme essai pour se mettre sous le groupe pole2
#!/bin/ksh
echo "appel du programme essai"
# Definition de la version Marcel a utiliser
export MARCEL_ENV="/home/opt/MARCEL/0000750_AA/MARCEL_ENV/marcel_env"
# Environnement de marcel
newgrp pole2<<"$grp"
${grp}
fin du programme essai
On revient au programme perl
my $id = `id`
print "$id";
et là je reste sur le groupe cpioc. Je comprend pas
Karim
23 févr. 2009 à 14:03
Merci vraiment pour ton coup de main
Bonne journée
Karim
25 févr. 2009 à 10:32
Je te remercie pour tes explications. Effectivement j'ai corrigé mon architecture et maintenant ça marche.
Bonne journée
A bientôt
Karim