%ENV enthältnicht alle Umgebungsvariablen
am 22.10.2006 12:02:20 von Til Schubbe
Hallo,
wenn ich mir mit
while ( ($k, $v) = each %ENV ) {
print "$k\n";
}
den Inhalt von %ENV ausgeben lasse, erhalte ich 36 Variablen. Gebe ich
in der bash 'echo $' ein und drücke 2 * TAB, erhalte ich aber 72
Variablen. Insbesondere fehlt mir in Perl der HOSTNAME.
Ich habe dann testweise 3 neue Variablen mit 'export ...=...'
hinzugefügt. Alle tauchen dann auch in %ENV auf.
Hier meine Versionen:
$ perl --version
This is perl, v5.8.8 built for i486-linux-gnu-thread-multi
$ bash --version
GNU bash, version 3.1.17(1)-release (i486-pc-linux-gnu)
Warum enthält %ENV nicht alle Umgebungsvariablen der bash?
TIA + Gruß
Til
Re: %ENV enthältnicht alle Umgebungsvariablen
am 22.10.2006 12:44:48 von Guido Ostkamp
Til Schubbe wrote:
> Warum enthält %ENV nicht alle Umgebungsvariablen der bash?
Weil es wahrscheinlich keine Umgebungs (=Environment) Variablen sind,
sondern lokale. Erst duch das 'export' Statement werden sie ins
Environment übernommen.
Versuch doch einfach mal 'export VARIABLENNAME' auf die, die Du noch
zusätzlich brauchst. Danach müßte auch Perl sie anzeigen können.
Gruß,
Guido
Re: %ENV enthält nicht alle Umgebungsvariablen
am 23.10.2006 09:31:11 von Ferry Bolhar
Til:
> $ bash --version
> GNU bash, version 3.1.17(1)-release (i486-pc-linux-gnu)
>
> Warum enthält %ENV nicht alle Umgebungsvariablen der bash?
BASH_VERSION (ich nehme an, diese Variable meinst du), ist
_keine_ Umgebungsvariable, sondern eine ganz normale Shell-
Variable, die die Bash beim Starten setzt (und die du, wenn du
Lust hast, auch jederzeit ändern kannst).
Wenn du ein
export BASH_VERSION
machst, wird du sie auch in %ENV wiederfinden.
LG, Ferry
--
Ing Ferry Bolhar
Magistrat der Stadt Wien - MA 14
A-1010 Wien
E-Mail: bol@adv.magwien.gv.at