| Visibilite des variables dans un shell par Haiti |
jeudi 23 janvier 2003 à 14:19:03 |
Je ne connais pas ce langage mais est ce que ta variable dans ton while do ne serait pas en local. Normalement dan tous les lagages que j'ai appris le while do à les mêmes propriétés de variable que le while ou le for mais bon on sait jamais
|
c'est vrai que c'est vraiment bizarre ton truc. Peux tu mettre ta requête au complet pour regarder ça de plus près. |
En résumé cela ressemble à ca :
#!/bin/sh while read line_in do if [ $i -eq 1 ] then var1="$i.$line_in" elif [ $i -eq 2 ] then var2="$i.$line_in" etc ... fi i=`expr $i + 1` done < file_in.txt #Si je fais echo des mes variables var... -> pas de résultat uniquement blank echo $var1 echo $var2 etc .... alors que si j'utilises for line_in in `cat file_in.txt` do ... done Ca marche. |
est ce qu'il faudra pas faire une concaténation de ta variable avec read
genre $varline.=line_in sinon je vois pas |
Zarbi, j'ai testé chez moi,çàa fonctionne.
[johand@zoot] ~/tmp $i=1 ;while read line_in; do if [ $i -eq 1 ]; then var1="$i.$line_in" ; elif [ $i -eq 2 ]; then var2="$i.$line_in"; fi; i=`expr $i + 1`; done ; echo $var1 $var2 aaa bbb 1.aaa 2.bbb Johan The software said "Requires Windows98, Win2000, or better, So I installed Unix. |
et est ce que l'autre shell ou ca marche pas n'est pas trop ancien ? Je vois pas trop pourquoi mais bon je cherche des solutions |
Ca doit être cela , un problème de version d'os.
je travaille sur SUNOS 5.5.1. Et en effet j'ai essayé sur une machine hp cela fonctionne. |
c'est un peu comme le ll qui avant était ls -l sur Linux. J'ai du mal à revenir sur l'ancien Linux au boulot ou le ll marche pas.
c'est bête mon exemple mais comme koi ça évolue tout le temps au niveau des fonctions
|
C'est un problème de "Père & Fils".
Après le "done", on revient dans le processus principal. une solution consiste à rester dans le processus fils en ajoutant un jeu de parenthèse. $ var=rien; cat - | ( while read f do var=$f done ) echo $var a a -- Tof |
EDIT : Je n'ai pas trouvé comment modifié mon post précédent... La parenthèse fermante n'était pas bien placée.
C'est un problème de "Père & Fils". Après le "done", on revient dans le processus principal. une solution consiste à rester dans le processus fils en ajoutant un jeu de parenthèse. $ var=rien; cat - | ( while read f do var=$f done echo $var ) a a -- Tof |
| 04/03 11h14 | creation d'une variable shell | Linux/Unix | 06/03 14h39 | 2 |
| 29/06 10h56 | Format de variables Shell | Linux/Unix | 29/06 16h38 | 8 |
| 16/05 10h44 | [Shell] Problème avec une variable [Débutant] | Linux/Unix | 16/05 10h55 | 4 |
| 27/03 15h02 | script shell : recherche char dans variable | Linux/Unix | 02/05 20h59 | 8 |
![]() | SSH Secure Shell - SSH secure shell for workstations est un client SSH flexible permettant de se connecter de façon sécurisée à des... | Catégorie: Telnet/SSH Licence: Open Source |
![]() | ShellEnhancer - ShellEnchancer est un programme d'amélioration des fonctions de base de Windows. Il rend les interfaces plus stables et plus... | Catégorie: Personnalisation Licence: Freeware/gratuit |
![]() | Gant2Ocean ShellPack - Pour ceux qui aiment bien personnaliser l'apparence de leur interface graphique Windows ou Thèmes, ils seront gâtés. ... | Catégorie: Personnalisation Licence: Freeware/gratuit |
![]() | CygWin - Cygwin est un environnement UNIX pour Windows composé: d'un shell Unix d'une librairie dynamique (DLL) chargée de... | Catégorie: Développement Licence: Open Source |