Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 19/09/2012, à 16:36

joko

passage de variable d'un script vers un "source" et réciproquement

bonjour,
j'ai deux programmes qui font sensiblement la même chose, j'aurais voulu utiliser la partie commune comme entité à part entière et que les deux programmes l'appellent comme un sous-programme (à la manière d'un include en php).
J'ai trouvé la commande qui le réalise : source chemin_du_sous_programme
Malheureusement, les variables du source ne sont pas vue par le script appelant. Comment puis-je m'y prendre ?

#!/bin/bash
wget http://www.radiomeuh.com/site/playlist/index.php
mv index.php /home/user/Bureau/play_list_radio_meuh.html
source /home/user/scripts/playlist_meuh_core
chaine1="artiste : $artiste \nalbum : $album \ntitre : $titre"
 zenity --info --title "*** info radio meuh ***" --text="$chaine1"

les variables artiste etc.. ne retournent rien comme valeur...
merci z'à vous


Je suis un homme, quoi de plus naturel en somme ?
linux on the rocks

Hors ligne

#2 Le 19/09/2012, à 17:17

Haleth

Re : passage de variable d'un script vers un "source" et réciproquement

Function ? Passage de parametres ?
C'est generalement la solution, plutot que de faire des includes de fichier alarache comme php


Ubuntu is an ancien African word which means "I can't configure Debian"

Because accessor & mutator are against encapsulation (one of OOP principles), good OOP-programmers do not use them. Obviously, procedural-devs do not. In fact, only ugly-devs are still using them.

Hors ligne

#3 Le 19/09/2012, à 22:14

joko

Re : passage de variable d'un script vers un "source" et réciproquement

a- une fonction commune à deux scripts
question est-possible d'en faire un fichier isolé puis de l'appeler dans les deux scripts ?
b- passage des variables  de cette fonction aux variables des scripts

Dernière modification par joko (Le 19/09/2012, à 22:15)


Je suis un homme, quoi de plus naturel en somme ?
linux on the rocks

Hors ligne

#4 Le 20/09/2012, à 08:17

pingouinux

Re : passage de variable d'un script vers un "source" et réciproquement

Bonjour,
Si /home/user/scripts/playlist_meuh_core est un script bash

source /home/user/scripts/playlist_meuh_core

permet de récupérer les variables d'environnement qui y sont définies, ou d'utiliser les fonctions qui y sont définies.

Ajouté :
Suivant la façon dont la fonction est définie, on récupère ou non les variables internes

$ y() ( c=8; )
$ y
$ echo c=$c 
c= 

$ z() { d=9; }
$ z
$ echo d=$d
d=9

Dernière modification par pingouinux (Le 20/09/2012, à 08:32)

Hors ligne

#5 Le 20/09/2012, à 11:09

Watael

Re : passage de variable d'un script vers un "source" et réciproquement

salut,

j'espère que ceci t'éclairera

./mesFonctions :

maFonction() { echo $(( $1 + 3));}

./monScript :

#!/bin/bash

source mesFonctions

avant="$1"
apres=$(maFonction "$avant")

printf '%s\n' "$avant" "$apres"
$ ./monScript 3
3
6

Connected \o/
Welcome to sHell. · eval is evil.

Hors ligne

#6 Le 21/09/2012, à 23:05

joko

Re : passage de variable d'un script vers un "source" et réciproquement

je prends bonne note
ceci dit mon script fonctionne presqu'à merveille, je me permettrai de vous solliciter pour voir s'il n'est pas "élégamment" améliorable (code source propre, variable explicite, condensation de code)

merci de votre sollicitude


Je suis un homme, quoi de plus naturel en somme ?
linux on the rocks

Hors ligne

#7 Le 09/10/2012, à 00:54

Melrock

Re : passage de variable d'un script vers un "source" et réciproquement

Il faut exporter tes variables pour qu'elles soient communes entre le script appelant et l'appelé :

appelant :
export toto
source machin
echo $toto # affiche "valeur"

machin:
toto=valeur


Tout problème a sa solution, donc s'il n'y a pas de solution, c'est qu'il n'y a pas de problème.

Hors ligne