promenne ve scriptu

Michal Kašpar mkaspar na it-media.cz
Čtvrtek Květen 18 23:33:37 CEST 2006


On Thu, May 18, 2006 at 10:46:21PM +0200, Miroslav Kolombo wrote:
> Snazim se o generaci openvpn pomoci scriptu v adresari easy-rsa
> 
> Nastavil jsem si ve scriptu vars
> export D=/usr/share/ssl
> export KEY_CONFIG=$D/openssl.cnf
> export KEY_DIR=$D/vpn_keys
> 
> ale dalsi script konci takto:
> [root na sbf ssl]# ./build-ca
> you must define KEY_DIR
> 
> a prikaz set v seznamu obsazovane promenne nema :-(

A jak ty scripty spouštíte?
Totiž, když spustíte první script, vytvoří se nový proces shellu, tam se
pěkně nastaví a vyexportují proměnné, pak script skončí, proces shellu
se ukončí a proměnné jsou v háji.
Pak spustíte druhý script a samozřejmě nic nenajde.
Pokud chcete mít proměnné definované v jednom scriptu a použít je v
jiném (nebo si je například "naimportovat" do aktuálního prostředí), používá
se obvykle příkaz 'source scriptname' nebo '. scriptname' který vykoná srcipt
scriptname, jako by byl součástí aktuálního scriptu a všechny proměnné tedy
zůstanou pro zbytek aktuálního scriptu.
Tj. ve vašem případě do scriptu build-ca někam na začátek vložíte
. vars
a mělo by to fungovat. Viz help source, help ., man bash.

-- 
Michal Kašpar


Další informace o konferenci Linux