Portál AbcLinuxu, 25. dubna 2024 12:24


Dotaz: Lokálne premenné cez source

6.12.2008 15:07 pupala | skóre: 21
Lokálne premenné cez source
Přečteno: 258×
Odpovědět | Admin

Ahojte

Ako sa dá cez source načítať súbor s premennými do funkcie tak, aby premenné zo sourcnutého súboru boli len lokálne

pre danú funkciu?

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

Odpovědi

7.12.2008 07:28 luky
Rozbalit Rozbalit vše Re: Lokálne premenné cez source
Odpovědět | | Sbalit | Link | Blokovat | Admin

Jestli myslite bash, tak pomoci local.

8.12.2008 15:30 pupala | skóre: 21
Rozbalit Rozbalit vše Re: Lokálne premenné cez source

Local poznam, ale neviem ako ho aplikovat, aby boli vsetky premenne zo suboru ktory nacitam cez source automaticky deklarovane ako local.

 

8.12.2008 16:16 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: Lokálne premenné cez source
To nějak jednoduše nepůjde. Příkaz source (tečka) funguje prostě přesně tak, jako byste místo toho příkazu vložil do vašeho skriptu příslušný soubor.
9.12.2008 10:02 luky
Rozbalit Rozbalit vše Re: Lokálne premenné cez source

Myslel jsem to tak, ze pokud ten soubor budete sourcovat jen uvnitr funkci, tak primo v nem muzete ty promenne deklarovat jako local. Pokud by mel sourcovany skript zustat samostatne spustitelny nebo sourcovatelny i mimo funkce, tak to s local nepujde.

Zalezi na tom, co presne delate. Jestli je opravdu potrebujete jako lokalni, nebo vam jde jen o zachovani hodnot puvodnich promennych, nebo jeste neco jineho. Dost mozna si vystacite jen se subshellem, pripadne parsovanim set, atd.

 

7.12.2008 21:08 Semo | skóre: 45 | blog: Semo
Rozbalit Rozbalit vše Re: Lokálne premenné cez source
Odpovědět | | Sbalit | Link | Blokovat | Admin
Ak ti nejde nejak extra o rychlost, tak funkciu bezat v subshelli.
f() {
  (
    source ...
    ...
  )
}
If you hold a Unix shell up to your ear, you can you hear the C.
9.12.2008 15:47 Jan Šimák | skóre: 37 | Hradec Králové
Rozbalit Rozbalit vše Re: Lokálne premenné cez source
Odpovědět | | Sbalit | Link | Blokovat | Admin
#!/bin/bash
set -x

function promenne() {
	eval local $(cat /home/honzas/temp/promenne)
	echo "$ahoj"
	echo "$cau"
}

promenne

echo "$ahoj"
echo "$cau"
obsah souboru promenne vypada takto:
ahoj="ahoj jak se mas"
cau="cau mam se dobre"

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.