Portée d'une variable [BASH] - Codes et scripts - Linux et OS Alternatifs
Marsh Posté le 10-06-2004 à 23:48:30
edit: j'avais dit des conneries fausses en shell script, sorry
Marsh Posté le 10-06-2004 à 23:56:47
c pas vraiment ca, dommage (j'y avais pensé)
mais en bash, les affectations de variables sont globales.
Pour t'en convaincre essaye ca.
Code :
|
Mais ce que je comprend pas c pourquoi dans ce cas ca marche, alors que avec un pipe ca ne marche pas
Merci quand même
Une autre idée?
Marsh Posté le 11-06-2004 à 00:14:23
bon, effectivement, j'm'a gourré.... la fatigue tout çaaaa
sinon, je vois pas mais l'appel echo "i" | vers une fonction, c'est bizarre...
tu peu pas faire in=`echo "i"` && toto($in) avec un parametre a ta fonction plutot ?
Marsh Posté le 11-06-2004 à 00:17:05
Ca arrive
le echo c'était juste pour donner quelque chose au pipe
la fonction toto a besoin de lire dans l'entrée standard
en vrai ce n'est pas un echo "i", mais une succession de pipe
Marsh Posté le 11-06-2004 à 00:22:35
bah oui mais envoyer un pipe dans une fonction, j'avoue que ca me chiffonne un peu...
c'est pour ca que je te propose de recuperer la sortie de ta serie de | avec les guillemets ` ` et de passer cette valeur à ta fonction a la place de lire stdin
Marsh Posté le 11-06-2004 à 00:30:16
ca marche très bien les pipe dans les fonctions
l'autre méthode je connais, mais en fait j'ai besoin de récupérer des lignes, et l'autre méthode ne conserve pas les lignes
Code :
|
On voit bien ici que l'on a tout sur une ligne, ce qui ne me conviens pas c'est pour ca que j'utilise un pipe
Marsh Posté le 11-06-2004 à 08:34:16
philou_a7 a écrit : nan... marche pas non plus |
J'ai pas compris de quoi tu parles, C'est un copier coller de ma console, donc sa affiche bien ce qui est écrit, mais c'est pas ce que je veux.
La vrai fonction toto contient une boucle while read ligne; do; qqchose; done.
C'est pour ca que j'ai besoin du pipe
Marsh Posté le 11-06-2004 à 08:46:42
Euh non, y a eu un autre message entre le tien et le mien mais il a ete effacé
du coup le mien veux plus rien dire
Marsh Posté le 11-06-2004 à 09:00:52
j'avais peut etre pas totalement dit une connerie au debut...
|
essaie ca et regarde bien les resultats
je me demande si "local" n'est pas implicite dans une fonction
Marsh Posté le 11-06-2004 à 09:09:03
Je viens d'avoir l'explication sur le forum gentoo
Citation : chaque portion d'un pipe est executée dans un sous-shell, et donc les affectations de variable qui s'y trouvent n'ont aucun effet sur le programme principal. |
http://forums.gentoo.org/viewtopic [...] 23#1230723
Ce que je veux faire n'est apparement pas possible, je vais essayer de repenser mon script autrement. Merci pour ton aide
Marsh Posté le 11-06-2004 à 09:23:39
ah bah d'accord
et si tu utilises export pour la declaration, ca traverse pas les sous-shells ?
Marsh Posté le 11-06-2004 à 10:24:11
faudra que j'apprenne un jour... mais un jour qui n'est pas aujourd'hui
Marsh Posté le 10-06-2004 à 22:44:14
Bonjour
J'ai un problème avec la gestion des variables en bash.
Je ne comprend pas pourquoi dans l'exemple ci-dessous, il n'y
a qu'une ligne vide qui s'affiche
Si quelqu'un pouvait m'éclairer?