passer une variable entre 2 script?

Forum d'assistance et d'échange sur l'installation, la configuration, et l'utilisation des système Linux et BSD. Vous pouvez y poster vos questions concernant ces systèmes d'exploitation en faisant l'effort préalable de rechercher dans le forum, dans les manuels et les documentations que la réponse n'y figure pas.

Modérateur: modos Ixus

passer une variable entre 2 script?

Messagepar phylosss » 17 Mai 2004 23:05

Bonjour!

Voici ma situation:

j'ai 2 scripts: test.sh crée des repertoires et fichiers, puis appelle scr.sed, qui lui parcours un autre fichier afin de le modifier.

Mon probleme est le suivant: test.sh genere un nom d'usager, devrai le passer en parametre a mon script scr.sed afin que celyui ci parcours mon fichier http.conf afin d'y rajouter le chemin d'un repertoire de cet usager.

comment passer une variable a partir d'un script bash, jusqu'A un script sed?

voici l;a ligne de test.sh qui appelle scr.sed


./scr.sed "$1" /coda/is.srv.compagnie/www/"$1"/conf/http.conf>>
/coda/is.srv.compagnie/www/"$1"/conf/httpd

le $1 represente le nom de l'usager


Voici scr.sed

#! /bin/sed -f

/blabla/a\
include "/coda/is.noc1.sys-tech.net/www/"$1"/conf/http.conf"\


J'ai tenté de stoker la variable dans un fichier texte temporaire, mais mon script sed ne veux pas lire le fichier.......

Je sais aussi qu'il est possible d'exporter des variables, mais je n'ai aps trouvé de bonne documentation sur le sujet...

est-il possible de rendre un variable globale, afin qu'elle soit accessible au mem titre qu'un variable d'environnement?


merci a tous ceux qui voudrons bien m'aidfer un peu :lol: :shock: :shock:
regarde, j'ai un beau probleme tout neuf.... veux-tu y toucher...?

MOUHAHAHAHAHHAHA!
Avatar de l’utilisateur
phylosss
Quartier Maître
Quartier Maître
 
Messages: 18
Inscrit le: 22 Avr 2004 15:55
Localisation: quebec,quebec

Messagepar Gaston » 17 Mai 2004 23:45

Bonsoir,
bizarre, car normalement les variables d'un shell font partie du contexte passé au sous shell :roll:

Peux-t-être parce que tu utilises $1 - variable du SHELL- et non une variable à toi

sinon dans un SHELL script pour rendre une varibale + globale (vis à vis des fonctions) tu peux faire un export de la variable.
C'est à juger au coup par coup.

Je t'ai fait un exemple ci dessous (le set -x c'est just pour que tu vois bien ce qui se passe):
Code: Tout sélectionner
$ cat titi.sh
username="cestmoi"
./tutu.sh $username deuxieme troisieme
exit 0
$ cat tutu.sh
set -x
echo "Parametres passés à $0 : $*"
$ sh -x ./titi.sh
+ username=cestmoi
+ ./tutu.sh cestmoi deuxieme troisieme
++ echo 'Parametres passés à ./tutu.sh : cestmoi deuxieme troisieme'
Parametres passés à ./tutu.sh : cestmoi deuxieme troisieme
+ exit 0
$


j'espère que ça t'aidera.

Cldt
G.
Avatar de l’utilisateur
Gaston
Amiral
Amiral
 
Messages: 1367
Inscrit le: 06 Oct 2003 00:00
Localisation: Saint Maur, 94 FR

Messagepar phylosss » 18 Mai 2004 15:21

heu............je crois qu.il me faudra quelque chose de plus clair.... :cry:

mais en effet je vais verifier si ca fonctionne avec une variable a moi (O;
regarde, j'ai un beau probleme tout neuf.... veux-tu y toucher...?

MOUHAHAHAHAHHAHA!
Avatar de l’utilisateur
phylosss
Quartier Maître
Quartier Maître
 
Messages: 18
Inscrit le: 22 Avr 2004 15:55
Localisation: quebec,quebec

si tu ne peux resoudre ton probleme, contourne le

Messagepar phylosss » 18 Mai 2004 17:06

Bon j'ai trouvé une solution en contournant le probleme: mon premier script genere completement mon second script, ainsi, je n'ai pas de variable a passer entre les deux.

Le probleme venais en fait du fait qu'un script sed commence par !#/bin/sed -f et pas par !#/bin/sh, comme sed ne peux interpreter les commandes bash, j'étais coincé....

merci pour votre aide :lol: :oops:
regarde, j'ai un beau probleme tout neuf.... veux-tu y toucher...?

MOUHAHAHAHAHHAHA!
Avatar de l’utilisateur
phylosss
Quartier Maître
Quartier Maître
 
Messages: 18
Inscrit le: 22 Avr 2004 15:55
Localisation: quebec,quebec


Retour vers Linux et BSD (forum généraliste)

Qui est en ligne ?

Utilisateur(s) parcourant actuellement ce forum : Aucun utilisateur inscrit et 1 invité