export klappt nicht

Diskutiere export klappt nicht im Software Forum Forum im Bereich Hardware & Software Forum; Hi, entweder hab ich die Funktion von export nicht verstanden oder bei mir läuft was falsch. Bei folgender Befehlseingabe: [root@pc ~]# cat...
  • export klappt nicht Beitrag #1
S

Sam Smith

Bekanntes Mitglied
Dabei seit
25.01.2000
Beiträge
247
Reaktionspunkte
0
Hi,
entweder hab ich die Funktion von export nicht verstanden oder bei mir läuft was falsch.

Bei folgender Befehlseingabe:

[root@pc ~]# cat t.sh
export mandoo=1
[root@pc ~]# ./t.sh
[root@pc ~]# echo $mandoo

[root@pc ~]#


sollte da beim echo Befehl nicht 1 ausgegeben werden????

Greetingz Sam
 
  • export klappt nicht Beitrag #2
D

drcux

Bekanntes Mitglied
Dabei seit
03.02.2000
Beiträge
707
Reaktionspunkte
0
Die Exportfunktion in einem Skript gilt auch nur für dieses Skript, da dieses Skript in einer neuen Shell ausgeführt wird.

Dauerhafte exports gehören in die ~/bashrc
 
  • export klappt nicht Beitrag #3
S

Sam Smith

Bekanntes Mitglied
Dabei seit
25.01.2000
Beiträge
247
Reaktionspunkte
0
Versteh ich nicht.
Wenn es nur für das Skript gelten soll, brauch ich doch kein export.

Siehe folgende Befehle:

dhcp-64:~ # cat t.sh
mandoo=1
echo $mandoo

dhcp-64:~ # ./t.sh
1
dhcp-64:~ #


Greetingz Sam
 
  • export klappt nicht Beitrag #4
D

drcux

Bekanntes Mitglied
Dabei seit
03.02.2000
Beiträge
707
Reaktionspunkte
0
Export gilt fuer das laufende Skript und für alle Skripte die daraus gestartet werden, nicht aber fuer das "übergeordnete" Skript...

Also:

TEST="Testtext" gillt nur für das Skript selber.

export TEST="Testtext" gillt auch für Skripte, die von diesem aufgerufen werden.

Beispiele:

Skript A:
-----
TEST1="Testtext"
export TEST2="Testtext2"
echo $TEST1
echo $TEST2 (Beides wird ausgegeben!)
sh ./skriptb.sh (ruft das Skript skriptb.sh auf)
-----
Skript B (skriptb.sh):
-----
echo $TEST1 (Hier nun der Unterschied, TEST1 existiert nicht!)
echo $TEST2 (TEST2 exitstiert und wird ausgegeben!)
-----
 
  • export klappt nicht Beitrag #5
S

Sam Smith

Bekanntes Mitglied
Dabei seit
25.01.2000
Beiträge
247
Reaktionspunkte
0
Ach soooo!

Mmmh, dann stellt sich mir das Problem wie ich unter Linux beim Systemstart eine Variable global setze, so dass sie unter cron jobs auch zu erreichen ist.

Sam
 
  • export klappt nicht Beitrag #6
D

drcux

Bekanntes Mitglied
Dabei seit
03.02.2000
Beiträge
707
Reaktionspunkte
0
wie ich bereits schrieb, gehören die exports, die direkt beim einloggen gesetzt werden sollen in die ~/bashrc

Cronjobs werden zwar als User ausgeführt, bekommen aber KEINE Umgebungsvariablen mit!
 
  • export klappt nicht Beitrag #7
S

Sam Smith

Bekanntes Mitglied
Dabei seit
25.01.2000
Beiträge
247
Reaktionspunkte
0
Wie du schon sagst: Mit bashrc komm ich bei den cron jobs nicht weiter.
Deswegen fragte ich ja!!!
 
  • export klappt nicht Beitrag #8
Praetorian

Praetorian

Bekanntes Mitglied
Dabei seit
22.01.2003
Beiträge
806
Reaktionspunkte
2
Ort
/home/praetorian
Hmm kriegen Cronjobs nicht mal die aus der /etc/profile mit? Oder probier mal im Cronjob eine Loginshell zu erzwingen (durch /bin/bash -l), vielleicht geht dann was.

Falls das o.g. nicht klappt kannst du ein eigenes Shellskript schreiben (z.B. "/etc/cronvariables") in dem die Dinge gesetzt werden und dieses in jedem von Cron gestarteten Skript sourcen oder normal aufrufen.
 
  • export klappt nicht Beitrag #9
TCM-

TCM-

Bekanntes Mitglied
Dabei seit
06.08.2003
Beiträge
643
Reaktionspunkte
0
du darfst das script nicht exec()en, sondern musst es innerhalb der aktuellen shell "sourcen". also
Code:
. ./t.sh
oder
Code:
source ./t.sh
. davon abgesehen gilt das allerdings auch nicht fuer cron. wo ist das problem, zuweisungen direkt in die crontab zu schreiben, bzw. das obige "sourcen" als teil des befehls, der von cron gestartet wird, einzubauen?
 
Thema:

export klappt nicht

ANGEBOTE & SPONSOREN

https://www.mofapower.de/

Statistik des Forums

Themen
213.180
Beiträge
1.579.174
Mitglieder
55.879
Neuestes Mitglied
stonetreck
Oben