#1 Le 19/09/2012, à 15: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, à 16: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, à 21: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, à 21:15)
Je suis un homme, quoi de plus naturel en somme ?
linux on the rocks
Hors ligne
#4 Le 20/09/2012, à 07: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, à 07:32)
Hors ligne
#5 Le 20/09/2012, à 10: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, à 22: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 08/10/2012, à 23: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