Toon posts:

#!/bin/bash probleem --> export PATH

Pagina: 1
Acties:

Verwijderd

Topicstarter
OS:debian

Ik heb problemen met het uitvoeren van export's a.h.v een script, het script voert ze wel uit maar eenmaal terug in de bash zijn de variabelen weer terug gezet.

1) Als ik tijdens het uitvoeren van het script echo $PATH doe, zie ik de PATH die k had willen zien.

2) Maar na het uitvoeren van het script krijg ik met echo $PATH het de oude PATH

3) Ik run het script handmatig nadat de server opgestard is.
in de /root/SCRIPTNAME.sh

4) zelfde script werkt wel op slackware en redhat

5) -rwxrwxrwx 1 root root 491 Oct 14 17:44 systemvariables.sh


6) inhoud script

#!/bin/bash

export JAVA_HOME='/javaenv/j2sdk1.4.1_03'
export ANT_HOME=/javaenv/jakarta-ant-1.5
export CLASSPATH=$JAVA_HOME/lib/tools.jar
export PATH=$JAVA_HOME/bin:$ANT_HOME/bin:$PATH

iemand een idee?

mvg Auke-Dirk

  • tech-no-logical
  • Registratie: December 2000
  • Laatst online: 24-04 14:10
- je hebt een shell
- je start een bash op
- je zet de variabelen voor die instantie van bash
- je sluit die instantie van bash
- je bent terug in je shell (met alle oude vars)

haal die #!/bin/bash weg en start dit script met 'source script', dat werkt wellicht beter.

edit : zet die regels gewoon in je ~/.bashrc kan ook, of in je system-wide profile (bij mij /etc/profile)

[ Voor 19% gewijzigd door tech-no-logical op 14-10-2003 13:56 ]


  • kenneth
  • Registratie: September 2001
  • Niet online

kenneth

achter de duinen

Als je een environment variabele aanpast, geldt die alleen voor het huidige proces. Als je ook nog eens export gebruikt, geldt hij ook nog eens voor de child processen van dat proces.
Maar zodra je weer in de shell terugkomt, gelden die instellingen niet, want de shell heeft geen weet van de environment aanpassingen.
Wat je kan doen, is het script in het huidige shell proces draaien, en wel als volgt:

code:
1
$ source systemvariables.sh

Of:
code:
1
$ . systemvariables.sh

Look, runners deal in discomfort. After you get past a certain point, that’s all there really is. There is no finesse here.


  • blaataaps
  • Registratie: Juli 2001
  • Niet online
Zoals je al aangeeft, werkt het wel als je een echo $PATH in het script zelf zet, dit komt doordat je met het script alleen de environment van de huidige shell, en eventuele shells die dat script nog zelf maakt, waar hij dus de parent van is, mag veranderen. Het is in principe nooit mogelijk de environment te veranderen van je parent. Volgens mij werkt dit trouwens op slack of redhat net zo goed niet hoor, ik heb het net met slack geprobeerd, en dat deed net zoveel als op debian. Je wil dus voorkomen dat hij een nieuwe shell maakt, en daar de environment van verandert, waar je niks aan hebt, in plaats van systemvariables.sh aan te roepen, kun je "source /path/naar/script/naamvanscript" gebruiken, die voert de commandos die in het script staan, uit in de huidige shell, en verandert dus de goede environment.
edit:
ik moet sneller typen zie ik :)

[ Voor 4% gewijzigd door blaataaps op 14-10-2003 14:05 ]


  • kenneth
  • Registratie: September 2001
  • Niet online

kenneth

achter de duinen

Drie keer de goede oplossing, moet zo wel lukken, denk ik ;)

Look, runners deal in discomfort. After you get past a certain point, that’s all there really is. There is no finesse here.


Verwijderd

Topicstarter
Oke bedankt, maar weten jullie ook hoe het dan mogelijk is dat het wel bij redhat werkte, heb namelijk dat zelfde script gebuikt....

  • blaataaps
  • Registratie: Juli 2001
  • Niet online
Verwijderd schreef op 14 October 2003 @ 14:05:
Oke bedankt, maar weten jullie ook hoe het dan mogelijk is dat het wel bij redhat werkte, heb namelijk dat zelfde script gebuikt....
Dan moet je wel iets anders gedaan hebben vermoed ik haast, want zoals ik zei, in principe mag een shell nooit de environment van zijn parent beinvloeden. Ik heb het net ook even op redhat geprobeerd, en daar werkt het niet hoor.

Verwijderd

Topicstarter
ik zal wel te lang achter de monitoren gehangen hebben,
maar jetty en jboss draaien nu weer ..


thanx
Pagina: 1