Bonjour,
j'ai déclaré une variable dans un fichier et je voudrais savoir s'il est possible de l'utiliser dans un autre fichier?
Bonjour,
j'ai déclaré une variable dans un fichier et je voudrais savoir s'il est possible de l'utiliser dans un autre fichier?
Il ressemble à quoi ton premier fichier ?
Habituellement, quand on utilise un fichier de configuration en shell, on "source" ce fichier de conf pour récupérer ces variables :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 fichier.conf : TITI=valeur1 TOTO=valeur2
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 script.sh #!/bin/ksh . fichier.conf echo $TITI echo $TOTO
Du détail, du détail, du détail !!!
Revenons à la source : lisons la documentation et les fichiers de trace, la réponse à notre problème s'y trouve sans doute
Voici mon 1er fichier:
Dans ce fichier je déclare la variable FIC et j'aimerais recupréer cette variable dans mon fichier corps.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 for nom in $(ls -1art $rep/fichier_num*.[Tt][Xx][Tt]) do FIC = ${nom:30:3} echo "LOAD DATA INFILE '$nom' STREAM BADFILE '$LOGS/fichier.BAD' DISCARDFILE '$LOGS/fichier.DISCARD'" > $SRC_SQLLOADER/Chargement.ctl cat $SRC_SQLLOADER/corps >>$SRC_SQLLOADER/Chargement.ctl #sqlload $REF $SRC_SQLLOADER/Chargement.ctl log=$LOGS/fichier.LOG done;
Est ce possible?
C'est quoi ton fichier corps ? Quelle est la relation entre les 2 fichiers ? A priori, si tu fais ". fichier1" dans ton fichier corps, ça devrait passer (globalement, le . correspond à un include d'un fichier dans un autre).
Je ne sais pas si c'est intentionnel, mais les espaces avant et après le signe = là où tu définis FIC ne vont pas passer.
Du détail, du détail, du détail !!!
Revenons à la source : lisons la documentation et les fichiers de trace, la réponse à notre problème s'y trouve sans doute
Mon fichier corps est le suivant:
je ne pouvais pas mettre ça à la suite de mon fichier car sinon les guillemet ne sont pas pris en compte.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 TRUNCATE INTO TABLE NOM_TABLE (Val1 POSITION(1:11), val2 POSITION(22:56), DATE_SAISIE POSITION(13:20) DATE "yyyymmdd", val3 POSITION(58:62), val4 POSITION(75:82), val5 POSITION(84:91), val6 INTEGER EXTERNAL "$FIC.fichier" , val7 CHAR ":val6||'/'||:val3||'/'||:val1||'.TIF'")
Pour ma valeur6 j'ai mis $fic.fichier mais il n'arrive pas à la lire.
Si je comprends bien, ton fichier corps n'est pas un script shell, mais une commande SQL Loader, c'est bien ça ? Dans ce cas, tu ne peux pas faire ce que tu cherches à faire, car c'est SQL Loader qui va interpréter ton fichier corps et il ne sait pas faire ce que tu lui demandes de faire.
Tu dis que tu as un problème avec les guillemets quand tu mets ta commande à la suite de ton fichier : as-tu essayer de les "escaper" en mettant un \ devant ?
Du détail, du détail, du détail !!!
Revenons à la source : lisons la documentation et les fichiers de trace, la réponse à notre problème s'y trouve sans doute
Génial ça marche![]()
Donc je peux maintenant mettre directemenbt ma variable?
je vais essayer...
En tout cas merci pour les \!
super ça marche.
MERCI VRAIMENT BEAUCOUP!
Il me semblait que cette solution là tu l'avais déjà eue dans cette réponse là![]()
Modérateur Langage SQL
Règles du forum Langage SQL à lire par tous,
N'hésitez pas à consulter les cours SQL
N'oubliez pas le bouton
et pensez aux balises [code]
Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.
oui mais ne n'avais pas essayécar j'ai été ensuite sur le forum oracle où on m'a donné d'autres indications..
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager