Variablen protokollieren

19/06/2015 - 17:24 von Alexander Goetzenstein | Report spam
Hallo,
um etwas Kontrolle über diverse Scripte zu erlangen, möchte ich in einer
kleinen Standardprozedur die wichtigen Variablen protokollieren. Dazu
habe ich mir folgendes gedacht:

=test-variablen.sh#!/bin/sh
# Schreibt die Variablenwerte in ein Logfile

RUNLOGFILE="/tmp/"$(basename $0)".log"
VAR1="Variable 1"
VAR2="Variable 2"
VAR3="Variable 3"
VAR4="Variable 4"

echo "Start: "$(date +%G"-"%m"-"%d"__"%H"-"%M"-"%S) >> $RUNLOGFILE
for v in RUNLOGFILE VAR1 VAR2 VAR3 VAR4
do
echo $v": "$$v >> $RUNLOGFILE
done
=test-variablen.sh

Doch die Protokolldatei sieht nicht wie erwartet aus:

==/tmp/test-variablen.sh.log=Start: 2015-06-19__17-15-02
RUNLOGFILE: 12493v
VAR1: 12493v
VAR2: 12493v
VAR3: 12493v
VAR4: 12493v
==/tmp/test-variablen.sh.log=

Mein erster Verdacht: das Quoting der Variablen stimmt nicht, und so
habe ich einiges durchprobiert, was mir sinnvoll erschien, bin aber
nicht auf einen grünen Zweig gekommen. Bestimmt sieht jemand auf Anhieb,
wo es klemmt: was mache ich falsch, wie geht es richtig?


Gruß
Alex
 

Lesen sie die antworten

#1 Tom Friedetzky
19/06/2015 - 17:40 | Warnen spam
On Fri Jun 19 2015 at 15:24:43 UTC, Alexander Goetzenstein wrote:
Hallo,
um etwas Kontrolle über diverse Scripte zu erlangen, möchte ich in einer
kleinen Standardprozedur die wichtigen Variablen protokollieren. Dazu
habe ich mir folgendes gedacht:

=test-variablen.sh> #!/bin/sh
# Schreibt die Variablenwerte in ein Logfile

RUNLOGFILE="/tmp/"$(basename $0)".log"
VAR1="Variable 1"
VAR2="Variable 2"
VAR3="Variable 3"
VAR4="Variable 4"

echo "Start: "$(date +%G"-"%m"-"%d"__"%H"-"%M"-"%S) >> $RUNLOGFILE
for v in RUNLOGFILE VAR1 VAR2 VAR3 VAR4
do
echo $v": "$$v >> $RUNLOGFILE
done
=test-variablen.sh>

Doch die Protokolldatei sieht nicht wie erwartet aus:

==/tmp/test-variablen.sh.log=> Start: 2015-06-19__17-15-02
RUNLOGFILE: 12493v
VAR1: 12493v
VAR2: 12493v
VAR3: 12493v
VAR4: 12493v
==/tmp/test-variablen.sh.log=>

Mein erster Verdacht: das Quoting der Variablen stimmt nicht, und so
habe ich einiges durchprobiert, was mir sinnvoll erschien, bin aber
nicht auf einen grünen Zweig gekommen. Bestimmt sieht jemand auf Anhieb,
wo es klemmt: was mache ich falsch, wie geht es richtig?



Probier mal

eval "echo $v: \$$v" >> $RUNLOGFILE

Siehe z.B.
http://unix.stackexchange.com/quest...r-variable

Ähnliche fragen