Umgebungsvariable in Unix
|
Seitenanfang |
Nach dem Einlesen der Konfigurationsdaten aus einer Textdatei ist eine Perl-Variable mit folgendem Wert belegt: .. print( "-> $Var \n" ); -> $BASEDIR/$SUB/importwobei BASEDIR und SUB zwei auf Shell-Ebene gesetzte Unix-Umgebungsvariablen sind: echo $BASEDIR /bea echo $SUB archiv Wie bringe ich das Perl-Script dazu, dass die Umgebungsvariablen durch die Werte ersetzt werden, so dass im Beispiel print( "-> $Var \n" ); -> /bea/archiv/import herauskommt. Gibt es dazu eine Standardfunktion oder muss ich den Knochenweg über den ENV-Hash gehen?
Datum: 23.04.2008-14:14

|
re: Umgebungsvariable in Unix
|
Seitenanfang |
my $str = "User: \$USER\nShell: \$SHELL\nHomedir: \$HOME\n"; print $str; my $env_pattern = join('|', keys %ENV); $str =~ s/\$($env_pattern)/$ENV{$1}/eg; print $str;
Datum: 23.04.2008-14:46

|
re: Umgebungsvariable in Unix
|
Seitenanfang |
Das isses! Vielen Dank!
Datum: 23.04.2008-15:06

|
re: Umgebungsvariable in Unix
|
Seitenanfang |
| no problem
Datum: 25.04.2008-02:05

|
re: Umgebungsvariable in Unix
|
Seitenanfang |
| Einen Punkt sollte man noch bedenken. Eine Variable kann auch in der Form ${VAR} verwendet werden, aber das kann man über den regulären Ausdruch einfach erschlagen.
Datum: 25.04.2008-06:37

|