[perl] exécution d un script unix particulier

Fermé
fxta - 20 oct. 2009 à 11:19
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 - 20 oct. 2009 à 12:43
Salut,

je possede un script sh qui fait une requete en sqlplus, pour lancer ce script la main je tape :

. script.sh
(point espace script.sh) Sinon celui ci ne fonctionne pas.

Malheureusement perl ne comprend pas le . [espace] j'ai l'impression.

que ce soit en ssh :
my $CMD = "cd /tmp;. script.sh;" ;


ou en commande system :
my $sh = `. script.sh`; 

system(". script.sh");


Si quelqu un a une astuce ?

Bonne journée

15 réponses

swoog42 Messages postés 1060 Date d'inscription mercredi 30 septembre 2009 Statut Membre Dernière intervention 16 décembre 2018 244
20 oct. 2009 à 11:21
essaye de lancer ton script ainsi :
./script.sh
0
Ca ne fonctionne pas non plus

cannot execute
0
swoog42 Messages postés 1060 Date d'inscription mercredi 30 septembre 2009 Statut Membre Dernière intervention 16 décembre 2018 244
20 oct. 2009 à 11:24
et si tu lance avec le chemin absolu ?
0
meme message, je pense que je suis obliger de le lancer avec
. script.sh
ou alors trouver une commande qui joue le meme role que ce . [espace] .

(d ailleurs je sais pas a quoi ca corespond . [espace] ^^)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
swoog42 Messages postés 1060 Date d'inscription mercredi 30 septembre 2009 Statut Membre Dernière intervention 16 décembre 2018 244
20 oct. 2009 à 11:28
désolé, je ne suis jamais tombé sur ce cas de figure, je passe la main.
0
Pas de souci.

Merci quand meme.
0
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 569
20 oct. 2009 à 11:31
Salut,

Essaie
system("sh script.sh");

ou

system(".", "script.sh");



ou

system("sh","script.sh");
--
106485010510997108
0
Nice
system("sh script.sh");
fonctionne bien.

j'en ai trouvé un autre qui fonctionne bien:
<code>system(". /tmp/script.sh");

Merci bien.

Juste un ptit pb , quelles sont les commandes a taper pour charger les variables d'environnement lors d une connexion ssh?
0
Desole j'ai répondu trop vite..... ca trouve le script (c est deja ca) ca le lance, mais l'exécution se passe tres mal...
0
Bon je pense que je vais faire mon script en full perl ca évitera des pbs.

Par contre comment faire pour charger les variables d'environnement d'un utilisateur?
0
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 569
20 oct. 2009 à 12:16
Re,

Bon je pense que je vais faire mon script en full perl ca évitera des pbs.
Oui.

Par contre comment faire pour charger les variables d'environnement d'un utilisateur?
Tu veux changer quoi exactement?
0
fichier liste.tmp:
bob
tom
tim


un bout du script:
for i in `cat /tmp/liste.tmp`
do
export ENV1=$i
. bin $i


je vois pas comment traduire :
export ENV1=$i
. bin $i
en perl.
0
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 569
20 oct. 2009 à 12:34
Re,

Ca te sers à quoi ces noms ?
bob, tom, tim


Peut être que tu es sur une mauvaise piste.
0
fxtaa Messages postés 1050 Date d'inscription mardi 20 octobre 2009 Statut Membre Dernière intervention 2 avril 2015 74
20 oct. 2009 à 12:40
J'ai voulu simplifier et censurer le script mais je pense plutot avoir raté mon coup.

Possibilité de passer par MP ?
0
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 569
20 oct. 2009 à 12:43
Re,

Pour les questions d'ordre général non. Il faut que la communauté profite des échanges, pour plusieurs raisons :
- partage (le but de CCM)
- peut être qu'il y a d'autres idées

Pour les données privées oui tu peux passer par MP, mais le code éventuel sera écrit dans le forum (les données privées ne seront pas divulguées

0