Portál AbcLinuxu, 9. května 2025 00:19

Dotaz: Jak spravne exportovat promene v bash

31.3.2013 13:25 OtO
Jak spravne exportovat promene v bash
Přečteno: 402×
Odpovědět | Admin
Zdravim, chtel bych se zeptat, zda je mozne ziskat obsah promene kterou vytvoril script spusteny jako script z jineho scriptu. Zkousel jsem
var=1 ; export var
ale promenou jsem neziskal. Poradi nekdo?
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

David Watzke avatar 31.3.2013 13:45 David Watzke | skóre: 74 | blog: Blog... | Praha
Rozbalit Rozbalit vše Re: Jak spravne exportovat promene v bash
Odpovědět | | Sbalit | Link | Blokovat | Admin
Nejde to. Můžeš ten jiný skript jedině zkusit sourcnout, ale to pak budeš mít v prostředí všechny proměnné a funkce, které skript definuje. Pro získání jedné proměnné lze použít:
var=$(source ./jiny_skript; echo "$var")
“Being honest may not get you a lot of friends but it’ll always get you the right ones” ―John Lennon
31.3.2013 20:26 potato
Rozbalit Rozbalit vše Re: Jak spravne exportovat promene v bash
Tohle samozřejmě kompletně vykoná jiny_skript, což většinou není úplně to, co chceš.

Základní otázka je, zda je jiny_skript taky pod tvou kontrolou. Je-li, tak může zapsat proměnné do nějakého souboru v načtitelném formátu např. pomocí declare -p, a druhý skript je pak zase načíst pomocí source.

Je-li jiny_skript něco, co pod kontrolou nemáš, tak zbývají jen zhulené možnosti, které sem raději nebudu psát...
2.4.2013 10:33 wtf
Rozbalit Rozbalit vše Re: Jak spravne exportovat promene v bash
Takhle zhulené?
tr '\000' '\012' < /proc/$PID/environ | egrep ^var=
xkucf03 avatar 2.4.2013 17:31 xkucf03 | skóre: 49 | blog: xkucf03
Rozbalit Rozbalit vše Re: Jak spravne exportovat promene v bash
(ale určitě se najdou lepší prostředky pro komunikaci mezi dvěma procesy)
Mám rád, když se lidé přou, znamená to, že vědí, co dělají, a že mají směr. Frantovo.cz, SQL-DK, Relational pipes
2.4.2013 17:56 potato
Rozbalit Rozbalit vše Re: Jak spravne exportovat promene v bash
Toto spíš má problém, že to nefunguje, než že je to zhulené. Nastavení proměnné v shellu nedělá setenv, takže tam obecně budeš mít výchozí hodnoty ze spuštění shellu:
export AAAAAAAAAAA=1
tr '\0' '\n' </proc/$$/environ | grep AAA
31.3.2013 22:46 kuka
Rozbalit Rozbalit vše Re: Jak spravne exportovat promene v bash
Odpovědět | | Sbalit | Link | Blokovat | Admin
Nejde a je to tak designovano schvalne. Mozna kdyz popises co tim chces resit za problem, nekdo ti poradi vhodne reseni.

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.