[perl] exécution d un script unix particulier

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
Configuration: Unix Aix

15 réponses

  1. 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] ^^)
    1. désolé, je ne suis jamais tombé sur ce cas de figure, je passe la main.
      1. Modérateur
        Salut,

        Essaie
        system("sh script.sh");

        ou

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


        ou

        system("sh","script.sh");
        --
        106485010510997108
        1. 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?
          1. 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...
            1. 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?
              1. Modérateur
                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?
                1. 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.
                  1. Modérateur
                    Re,

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

                    Peut être que tu es sur une mauvaise piste.
                    1. J'ai voulu simplifier et censurer le script mais je pense plutot avoir raté mon coup.

                      Possibilité de passer par MP ?
                      1. Modérateur
                        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