[bash] childprocess die variable in parent process zet

Pagina: 1
Acties:

  • Alarmnummer
  • Registratie: Juli 2001
  • Laatst online: 09-07-2024
Ik ben een aantal shellscripts aan het bouwen voor mijn ontwikkelomgeving. En ik wil graag het volgende: ik wil een bestand waarin variabelen kan zetten die gedeeld worden over meerdere andere commando's.

dus een init-env file waarin het volgende staat
export SOME_IP=1.2.3.4

Dit init-env bestand moet gedeeld worden over meerdere andere bash scripts, bv een ssh connect script (echte script is langer btw).

sh init-env
ssh blabla@$SOME_IP

Het probleem is dat de SOME_IP variable wel gezet is binnen init-env (en de processen die init-env maakt, dit heb ik ook gecontroleerd) maar dat na het draaien van sh init-env de waarde van SOME_IP dus niet meer bekend is binnen het parent process ssh-connect

Ik kan de SOME_IP wel in mijn ~/.bashrc script zetten, maar ik wil kijken of het ook op deze manier kant (blijft je systeem weer wat schoner). Dus wie o wie kan me hiermee helpen?

  • serkoon
  • Registratie: April 2000
  • Niet online

serkoon

mekker.

Je draait in je voorbeeld een extra (sub)-shell. Wat jij wil heet sourcen, en gebeurt middels '.' of 'source':

code:
1
2
3
4
5
6
7
serkoon@edinburgh:~% cat test.sh
export TEST=mek
serkoon@edinburgh:~% echo $TEST

serkoon@edinburgh:~% . ./test.sh
serkoon@edinburgh:~% echo $TEST 
mek

[ Voor 2% gewijzigd door serkoon op 02-02-2008 16:52 . Reden: Kleine toevoeging ]


  • Alarmnummer
  • Registratie: Juli 2001
  • Laatst online: 09-07-2024
serkoon schreef op zaterdag 02 februari 2008 @ 16:48:
Je draait in je voorbeeld een extra (sub)-shell. Wat jij wil heet sourcen, en gebeurt middels '.':

code:
1
2
3
4
5
6
7
serkoon@edinburgh:~% cat test.sh
export TEST=mek
serkoon@edinburgh:~% echo $TEST

serkoon@edinburgh:~% . ./test.sh
serkoon@edinburgh:~% echo $TEST 
mek
Woehoe... thanks.. het werkt.