gelöst: Bash: Variable aus Datei einlesen

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
Benutzeravatar
Huck Fin
Beiträge: 1202
Registriert: 10.03.2008 17:10:30

gelöst: Bash: Variable aus Datei einlesen

Beitrag von Huck Fin » 05.08.2023 13:01:07

Moin,
ich würde gerne Variable aus einer Datei einlesen.

Beispiel:
anstatt in meinem Script Variable zu definieren

Code: Alles auswählen

NAME1=Karl
NAME2=Maier
ALTER=88
echo $NAME1 ": " $NAME2 ": " $ALTER
möchte ich die aus einer Textdatei einlesen und als Variable setzen.

Code: Alles auswählen

#!/bin/bash
Datei1=variablen.txt
while read line
do
 X1=$(echo $line |awk '{printf $1}')
 X2=$(echo $line |awk '{printf $2}')
 echo X1=$X1
 echo X2=$X2
# Hier das Problem #
 $X1=$X2
#################
done <$Datei1

echo "Ausgabe"
echo $NAME1
echo $NAME2
echo $GEB

In der Textdatei steht:

Code: Alles auswählen

NAME1 Karl
NAME2 Maier
ALTER 88
Zuletzt geändert von Huck Fin am 05.08.2023 13:37:59, insgesamt 1-mal geändert.

Benutzeravatar
bluestar
Beiträge: 2346
Registriert: 26.10.2004 11:16:34
Wohnort: Rhein-Main-Gebiet

Re: Bash: Variable aus Datei einlesen

Beitrag von bluestar » 05.08.2023 13:16:25

Huck Fin hat geschrieben: ↑ zum Beitrag ↑
05.08.2023 13:01:07

Code: Alles auswählen

# Hier das Problem #
 $X1=$X2
Versuch mal

Code: Alles auswählen

eval $X1=$X2

Benutzeravatar
Huck Fin
Beiträge: 1202
Registriert: 10.03.2008 17:10:30

Re: Bash: Variable aus Datei einlesen

Beitrag von Huck Fin » 05.08.2023 13:18:55

Nein, leider kein Erfolg

ich habe noch was von "Export" gelesen ???

JTH
Moderator
Beiträge: 3023
Registriert: 13.08.2008 17:01:41
Wohnort: Berlin

Re: Bash: Variable aus Datei einlesen

Beitrag von JTH » 05.08.2023 13:21:44

Huck Fin hat geschrieben: ↑ zum Beitrag ↑
05.08.2023 13:01:07
In der Textdatei steht:

Code: Alles auswählen

NAME1 Karl
NAME2 Maier
ALTER 88
Wenn du das zu

Code: Alles auswählen

NAME1=Karl
NAME2=Maier
ALTER=88
umformen könntest – also gültigen Shell-Variablenzuweisungen, wo notwendig mit Quotes: NAME1="Huck Fin" – wäre das Ganze ein Einzeiler:

Code: Alles auswählen

#!/bin/bash

. variablen.txt

echo "$NAME1"
echo "$NAME2"
echo "$GEB"

Huck Fin hat geschrieben: ↑ zum Beitrag ↑
05.08.2023 13:18:55
ich habe noch was von "Export" gelesen ???
Die Variablen zu exportieren ist für deine Anwendung, soweit du sie gezeigt hast, nicht relevant. Das ist nur notwendig, wenn du Variablen an Programme, die aus einem Skript heraus aufgerufen werden, weiterreichen möchtest.
Manchmal bekannt als Just (another) Terminal Hacker.

Benutzeravatar
Huck Fin
Beiträge: 1202
Registriert: 10.03.2008 17:10:30

Re: Bash: Variable aus Datei einlesen

Beitrag von Huck Fin » 05.08.2023 13:27:13

Ah, habe es verstanden.
Gute Idee (y)
:THX:

Antworten