Inhalt einer Variable in Datei auslagern
Inhalt einer Variable in Datei auslagern
Hallo,
ich habe eine ziemlich große Variable mit vielen Zeilen in meinem Script.
Im Prinziep sieht das so aus:
template="
zeile1
zeile2
zeile3
zeile4 $tier
noch etwas $hunde "
Später gibt es ein
echo -e "$template" > datei.txt
Jetzt hätte ich gerne den Inhalt von $template in einer seperaten Datei template.txt . Dadurch könnte ich das Script selbst und das template.txt unabhängig voneinander weiter entwickeln.
Wichtig, wenn in template.txt eine Variabel z.B. $tier vorkommt, muß die Variable natürlich auch später beim erstellen von datei.txt automatisch ersetzt werden.
Danke für Euere Hilfe.
Liebe Grüße
Manfred
ich habe eine ziemlich große Variable mit vielen Zeilen in meinem Script.
Im Prinziep sieht das so aus:
template="
zeile1
zeile2
zeile3
zeile4 $tier
noch etwas $hunde "
Später gibt es ein
echo -e "$template" > datei.txt
Jetzt hätte ich gerne den Inhalt von $template in einer seperaten Datei template.txt . Dadurch könnte ich das Script selbst und das template.txt unabhängig voneinander weiter entwickeln.
Wichtig, wenn in template.txt eine Variabel z.B. $tier vorkommt, muß die Variable natürlich auch später beim erstellen von datei.txt automatisch ersetzt werden.
Danke für Euere Hilfe.
Liebe Grüße
Manfred
- pdreker
- Beiträge: 8298
- Registriert: 29.07.2002 21:53:30
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: Nürnberg
Ungetestet....
Beim Verwenden von TEMPLATE sollte dann direkt die Shell Substitution zuschlagen. Notfalls kannst Du auch selbst Makros definieren (%%HUND%% z.B.) und diese dann einfach mit sed ersetzen, falls das mit den Variablen in dem Template nicht so einfach geht...
Patrick
Code: Alles auswählen
TEMPLATE=`cat template.txt`
Patrick
Definitely not a bot...
Jabber: pdreker@debianforum.de
Jabber: pdreker@debianforum.de
- fred19726
- Beiträge: 507
- Registriert: 18.07.2002 03:38:38
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: Heidelberg (DE)
-
Kontaktdaten:
hi,
versuch mal die Datei zu sourcecn:
script.sh:
template.txt:
versuch mal die Datei zu sourcecn:
script.sh:
Code: Alles auswählen
#!/bin/sh
tier="hund"
hunde="bernhadiner"
. ./template.txt
Code: Alles auswählen
template="
zeile1
zeile2
zeile3
zeile4 $tier
noch etwas $hunde "
2 Dinge sind Unendlich, das Universum und die Menschliche Dummheit,
wobei ich mir beim Universum nicht sicher bin
-- Albert Einstein
wobei ich mir beim Universum nicht sicher bin
-- Albert Einstein
Hallo,
das scheint doch gar nicht so trivial zu sein.
Ich bekomme dann ein:
Was könnte da Abhilfe schaffen?
Liebe Grüße
Manfred
das scheint doch gar nicht so trivial zu sein.
Ich bekomme dann ein:
Code: Alles auswählen
generator002.sh: zeile1: command not found
Liebe Grüße
Manfred
Guten Morgen,
wenn das template.txt im selben Verzeichnis ist wie das Script selbst, müßte es doch so sein oder?
. ./template.txt
Oder ist es so richtig?
. template.txt
Oder so?
/var/www/web0/html/cgi-bin/admin/scripte/template.txt
Irgendwie bin ich noch ein bißchen auf dem Holzweg heute Morgen.
Danke und liebe Grüße
Manfred
wenn das template.txt im selben Verzeichnis ist wie das Script selbst, müßte es doch so sein oder?
. ./template.txt
Oder ist es so richtig?
. template.txt
Oder so?
/var/www/web0/html/cgi-bin/admin/scripte/template.txt
Irgendwie bin ich noch ein bißchen auf dem Holzweg heute Morgen.
Danke und liebe Grüße
Manfred
- fred19726
- Beiträge: 507
- Registriert: 18.07.2002 03:38:38
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: Heidelberg (DE)
-
Kontaktdaten:
Ja, genau so, aber das funktioniert nur wenn du im selben Verzeichniss wie das Script bist wenn du es ausführst !wenn das template.txt im selben Verzeichnis ist wie das Script selbst, müßte es doch so sein oder?
. ./template.txt
das sinnvollste wäre wohl ein absoluter pfad:
Code: Alles auswählen
. /var/www/web0/html/cgi-bin/admin/scripte/template.txt
2 Dinge sind Unendlich, das Universum und die Menschliche Dummheit,
wobei ich mir beim Universum nicht sicher bin
-- Albert Einstein
wobei ich mir beim Universum nicht sicher bin
-- Albert Einstein
Hallo,
ich habe das jetzt ausprobiert.
Es geht aber leider immer noch nicht.
Vielleicht gibt es ja noch einen anderen Lösungsansatz.
Hat dazu jemand eine Idee?
Herzlichen Dank und liebe Grüße
Manfred
ich habe das jetzt ausprobiert.
Es geht aber leider immer noch nicht.
Code: Alles auswählen
+ begriff1=Hund
+ begriff2=Katze
+ begriff3=Maus
+ . /var/www/web0/html/cgi-bin/admin/scripte/template.txt
++ Hund Katze Maus
generator002.sh: Hund: command not found
Hat dazu jemand eine Idee?
Herzlichen Dank und liebe Grüße
Manfred
- mistersixt
- Beiträge: 6601
- Registriert: 24.09.2003 14:33:25
- Lizenz eigener Beiträge: GNU Free Documentation License
Irgendwas machst Du noch falsch, pass auf:
Geht einwandfrei.
Gruss, mistersixt.
Code: Alles auswählen
mars:/tmp# cat template.txt
template="
zeile1
zeile2
zeile3
zeile4"
mars:/tmp# cat test.sh
#!/bin/sh
. ./template.txt
echo $template
mars:/tmp# ./test.sh
zeile1 zeile2 zeile3 zeile4
mars:/tmp#
Gruss, mistersixt.
--
System: Debian Bookworm, 6.11.x.-x-amd64, ext4, AMD Ryzen 7 3700X, 8 x 3.8 Ghz., Radeon RX 5700 XT, 32 GB Ram, XFCE
System: Debian Bookworm, 6.11.x.-x-amd64, ext4, AMD Ryzen 7 3700X, 8 x 3.8 Ghz., Radeon RX 5700 XT, 32 GB Ram, XFCE
moin,
das müsste es sein:
nicht getestet.......
jens
[/quote]
das müsste es sein:
Code: Alles auswählen
TEMPLATE=`cat template.txt`
export $TEMPLATE
jens
[/quote]