Portál AbcLinuxu, 13. května 2025 16:23
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?
Jestli myslite bash, tak pomoci local.
Local poznam, ale neviem ako ho aplikovat, aby boli vsetky premenne zo suboru ktory nacitam cez source automaticky deklarovane ako local.
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.
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.
f() { ( source ... ... ) }
#!/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"
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.