Mahlzeit,
Ich habe gestern nach langer Zeit mal wieder ein Skript geschrieben (mein erstes unter Linux) und musste feststellen, dass da deutlich mehr Möglichkeiten gegeben sind, als ich dachte. Das Skript funktioniert bereits und fragt am Anfrag eine Variabel ab, die lediglich aus ein paar Buchstaben, einem Bindestrich und letztlich einer Zahlenkombination besteht.
Für jeden Durchlauf muss ich also das Skript starten und die gewünschte Variabel eingeben. Da ich aber gesehen habe, dass auch if, else und co in Skripten möglich sind und ich oft auch mehrere Durchläufe machen will, kam mir die Idee die verschieden Daten zu der Variabel in eine Textdatei zu schreiben, beispielsweise so:
ghdz-9464
bhwg-9235
plojh-5243
Ist es grundsätzlich möglich von einem Skript aus dann die einzelnen Zeilen auszulesen und in das Skript einzusetzen? Nach dem Motto: Solange Daten vorhanden starte das Skript von vorne
Es würde natürlich auch reichen, wenn ich die Daten im Skript selber ablege und mit einem +1 Zähler arbeite, falls das möglich ist. Bisher habe ich nur PHP-Erfahrung (allerdings vor 7 Jahren das letzte mal genutzt), daher gefährliches Halbwissen im Moment. Und erstere Methode wäre sicherlich "sauberer".
LG
[gelöst] Shell-Skript - Variabel aus separater Textdatei?
- ManuelSchweer
- Beiträge: 195
- Registriert: 03.05.2010 15:15:24
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: Wetter (Ruhr)
-
Kontaktdaten:
[gelöst] Shell-Skript - Variabel aus separater Textdatei?
Zuletzt geändert von ManuelSchweer am 23.03.2014 15:29:28, insgesamt 1-mal geändert.
Re: Shell-Skript - Variabel aus separater Textdatei?
Code: Alles auswählen
for I in $(cat file.mit.den.Variablen); do irgendwas mit $I; done
- ManuelSchweer
- Beiträge: 195
- Registriert: 03.05.2010 15:15:24
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: Wetter (Ruhr)
-
Kontaktdaten:
Re: Shell-Skript - Variabel aus separater Textdatei?
Optimal, reicht. Danke.
Ich wollte ja nicht die Lösung, sondern nur nen Anreiz zum Basteln.
EDIT: Denkanstoß? Das war doch schon die Lösung.^^ I durch den Namen meiner Variabelen austauschen, do vor und done hinter den zu wiederholenden Teil. Läuft großartig und macht irgendwie Lust darauf sich mehr mit sowas zu beschäftigen.
Ich wollte ja nicht die Lösung, sondern nur nen Anreiz zum Basteln.
EDIT: Denkanstoß? Das war doch schon die Lösung.^^ I durch den Namen meiner Variabelen austauschen, do vor und done hinter den zu wiederholenden Teil. Läuft großartig und macht irgendwie Lust darauf sich mehr mit sowas zu beschäftigen.
-
- Beiträge: 134
- Registriert: 03.02.2011 11:11:21
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: Frankfurt
Re: Shell-Skript - Variabel aus separater Textdatei?
Code: Alles auswählen
$ cat test.cfg
VAR_1=wert-1
VAR_2=wert-2
VAR_3=wert-3
$ eval $(<test.cfg)
$ echo $VAR_{1,2,3}
wert-1 wert-2 wert-3
Re: [gelöst] Shell-Skript - Variabel aus separater Textdatei
Wobei eval Code ausfuehren kann und man sich dabei echt in's Knie schiessen kann. Besser ist da read:
Bei der Subshell-Variante ($(cat ...)) oben hat man auch das Problem, dass Leerzeichen in Zeilen diese aufspalten. Falls es keine Leerzeichen gibt, stoert das aber nicht.
Gruss Cae
Code: Alles auswählen
$ cat data
a=b
c=d
e=f
$ cat read-and-print
#!/bin/sh
while IFS== read name value; do
echo "'$name' -> '$value'"
done
$ ./read-and-print <data
'a' -> 'b'
'c' -> 'd'
'e' -> 'f'
$
Gruss Cae
If universal surveillance were the answer, lots of us would have moved to the former East Germany. If surveillance cameras were the answer, camera-happy London, with something like 500,000 of them at a cost of $700 million, would be the safest city on the planet.
—Bruce Schneier