T
topo
Grünschnabel
Hallo Zusammen,
ich möchte meine Buildumgebung vereinfachen und besser zu automatisieren. Ein Skript schreibt Pfade in die env und diese extrahiere ich später unter Verwendung von Schlüsselworten in eine Datei. Die Datei besteht anschließend aus einer Liste von env-Variablen, die ich später benötige. Wenn ich mir nun die erste env-Variable aus der Liste hole und in eine Variable speichere, dann möchte ich später nicht den Inhalt der Variable, sondern wiederum deren Inhalt ausgeben. Wie kann ich dies tun?
Shell: Bash
Linux: ubuntu 3.5.0
Bsp:
# store all env variables to sort later the new variables
( set -o posix ; set ) > variables.before
VAR1=/tmp/build
VAR2=/home/workspace
VAR3=/tmp/test
# store all env variables to diff and get the important for this process
( set -o posix ; set ) > variables.after
# diff the env variables and store only the "new" one from this script
diff variables.before variables.after | grep SOURCE > variables.diff
# remove first two characters resulting from diff
sed 's .. ' variables.diff > variables.source
# remove all after '='
sed -i 's/=.*//' variables.source
Inhalt variables.source:
VAR1
VAR2
VAR3
Ich hole mir in meinem Skript die erste Variable aus der Datei. Hier in diesem Beispiel VAR1
line=$(head -n 1 variables.source)
und möchte den Inhalt von VAR1 ausgeben. Wie kann ich dies machen?
$ echo $line
VAR1
So etwas wie $($line) funktioniert nicht, jedenfalls nicht so wie ich es möchte. Wie komme ich über die Variable "line" an den Inhalt "/tmp/build"? Kann mir da jemand weiterhelfen?
Veilen Dank schon im Voraus für die Hilfe.
Grüße,
topo
ich möchte meine Buildumgebung vereinfachen und besser zu automatisieren. Ein Skript schreibt Pfade in die env und diese extrahiere ich später unter Verwendung von Schlüsselworten in eine Datei. Die Datei besteht anschließend aus einer Liste von env-Variablen, die ich später benötige. Wenn ich mir nun die erste env-Variable aus der Liste hole und in eine Variable speichere, dann möchte ich später nicht den Inhalt der Variable, sondern wiederum deren Inhalt ausgeben. Wie kann ich dies tun?
Shell: Bash
Linux: ubuntu 3.5.0
Bsp:
# store all env variables to sort later the new variables
( set -o posix ; set ) > variables.before
VAR1=/tmp/build
VAR2=/home/workspace
VAR3=/tmp/test
# store all env variables to diff and get the important for this process
( set -o posix ; set ) > variables.after
# diff the env variables and store only the "new" one from this script
diff variables.before variables.after | grep SOURCE > variables.diff
# remove first two characters resulting from diff
sed 's .. ' variables.diff > variables.source
# remove all after '='
sed -i 's/=.*//' variables.source
Inhalt variables.source:
VAR1
VAR2
VAR3
Ich hole mir in meinem Skript die erste Variable aus der Datei. Hier in diesem Beispiel VAR1
line=$(head -n 1 variables.source)
und möchte den Inhalt von VAR1 ausgeben. Wie kann ich dies machen?
$ echo $line
VAR1
So etwas wie $($line) funktioniert nicht, jedenfalls nicht so wie ich es möchte. Wie komme ich über die Variable "line" an den Inhalt "/tmp/build"? Kann mir da jemand weiterhelfen?
Veilen Dank schon im Voraus für die Hilfe.
Grüße,
topo