Portál AbcLinuxu, 12. května 2025 07:28

Dotaz: shell-jak vyexportovat lokalni promennou?

21.2.2007 15:56 Terka | skóre: 13
shell-jak vyexportovat lokalni promennou?
Přečteno: 183×
Odpovědět | Admin
                            skript:
xxx=cau
echo $xxx

echo -e "1 2 3\n4 5 6"|\
while read a b c
 do echo $a
   echo $xxx
   xxx=ahoj
 done

echo $xxx

                          mi vyhodi:
cau
1
cau
4
ahoj
cau


Proc shell promennou z cyklu "zapomene" a vraci se k puvodni?
Jak ji vyexportovat aby mi vypsal:

cau
1
cau
4
ahoj
ahoj 

Nástroje: Začni sledovat (1) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

msk avatar 21.2.2007 16:01 msk | skóre: 27 | blog: msk
Rozbalit Rozbalit vše Re: shell-jak vyexportovat lokalni promennou?
Odpovědět | | Sbalit | Link | Blokovat | Admin
Jak ji vyexportovat ? :)
21.2.2007 16:08 five | skóre: 6 | Bratislava
Rozbalit Rozbalit vše Re: shell-jak vyexportovat lokalni promennou?
Odpovědět | | Sbalit | Link | Blokovat | Admin
spravne tvrdenie je ze ju treba exportovat, v sh: xxx=ahoj; export xxx;

v bash: export xxx="ahoj"; (aj ako v sh)

v csh: set xxx="ahoj";

ak sa nemylim
21.2.2007 16:25 Terka | skóre: 13
Rozbalit Rozbalit vše Re: shell-jak vyexportovat lokalni promennou?
xxx=cau
echo $xxx

echo -e "1 2 3\n4 5 6"|\
while read a b c
 do echo $a
   echo $xxx
export xxx=ahoj #tohle jsem uz predtim zkousela, ale nejde to
export $xxx     #tohle mi taky nejde 
 done

echo $xxx
21.2.2007 16:37 zabza | skóre: 52 | blog: Nad_sklenkou_cerveneho
Rozbalit Rozbalit vše Re: shell-jak vyexportovat lokalni promennou?
To co je za | se spusti v novem subshellu. "Vyexportovat" promennou do nadrazeneho shellu nejde...

Jestli resite konkretni problem, sem s nim. Resite ho spatne :-)
21.2.2007 16:46 Terka | skóre: 13
Rozbalit Rozbalit vše Re: shell-jak vyexportovat lokalni promennou?
Jasne.
Konkretni problem neresim, jen mi prislo divny:
mam cyklus s promennou xxx, ktera po poslednim pruchodu cyklem nabyva hodnotu "cau".
Po skonceni cyklu je
 echo $xxx 
a promenna uz najednou nenabyva hodnoty "cau".
Promenna je prazdna nebo, byla-li predtim definovana, nabyva hodnoty pred cyklem.
21.2.2007 17:31 Jan Martinek | skóre: 43 | blog: johny | Brno
Rozbalit Rozbalit vše Re: shell-jak vyexportovat lokalni promennou?
Tvou úvahu mohu názorně demonstrovat. Například tohle
#!/usr/bin/python
xxx = 'cau'
print xxx

for a, b, c in ((1,2,3), (4,5,6)):
    print a
    print xxx
    xxx = 'ahoj'

print xxx
Vypíše dle očekávání tohle:
cau
1
cau
4
ahoj
ahoj
21.2.2007 17:36 zabza | skóre: 52 | blog: Nad_sklenkou_cerveneho
Rozbalit Rozbalit vše Re: shell-jak vyexportovat lokalni promennou?
Akorat jste zapomnel spustit tu smycku v jinem procesu... :-)
21.2.2007 17:40 zabza | skóre: 52 | blog: Nad_sklenkou_cerveneho
Rozbalit Rozbalit vše Re: shell-jak vyexportovat lokalni promennou?
Neni na tom vubec nic divneho, pokud vite, ze | spouští nový proces. Jde tedy o dvě úplně jiné proměnné (resp. proměnnou se stejným jménem v uplně jiném shellu)...
21.2.2007 16:48 aaaaaaaaaa4
Rozbalit Rozbalit vše Re: shell-jak vyexportovat lokalni promennou?
presne tak, ivok ma pravdu

think again
21.2.2007 16:43 Pavel1 | skóre: 33
Rozbalit Rozbalit vše Re: shell-jak vyexportovat lokalni promennou?
Takto přesně to nepůjde. Stačí zde použít hledání a hned budeš chytřejší. Řešilo se to tady dost krát. Ale dá se to obejít, řešení najdeš třeba tady, naštuduj.
21.2.2007 17:02 Terka | skóre: 13
Rozbalit Rozbalit vše Re: shell-jak vyexportovat lokalni promennou?
jasne, chyba je v pipe

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.