Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Textdatei mit Variablen in Shellscript verarbeiten

Frage Linux

Mitglied: QuasimodosKlon

QuasimodosKlon (Level 1) - Jetzt verbinden

15.09.2009 um 09:23 Uhr, 11157 Aufrufe, 6 Kommentare

Eine Textdatei, die Variablen enthält, soll per Shellscript eingelesen und verarbeitet werden.

Hallo,

ich suche eine Lösung, um nicht ausführbare Texte, die aber Variablen enthalten, in einem Shellscript einzulesen.

source führt aus und erscheint für den gegebenen Fall nicht anwendbar. cat

z.B. Beispiel die Ausgabe einer Begrüßung...
Was natürlich funktioniert, ist
01.
VORNAME=Hans 
02.
NACHNAME=Mustermann 
03.
 
04.
cat <<_EOT_ 
05.
Guten Tag $VORNAME $NACHNAME, 
06.
 
07.
bla... blubb... 
08.
 
09.
Mit freundlichen Grüßen 
10.
_EOT_
Was ich nicht hinbekomme, ist etwas wie ungefähr hier erkennbar wird:
01.
VORNAME=Hans 
02.
NACHNAME=Mustermann 
03.
 
04.
cat <<_EOT_ 
05.
Geht natürlich beides nicht: 
06.
$(cat quelldateiname) 
07.
$(source quelldateiname) 
08.
_EOT_
...also Datei einlesen und Variablen ersetzen.

Hat da irgend jemand eine Idee?
Mitglied: ralfkausk
15.09.2009 um 10:46 Uhr
cat << EOF
'cat %datei_1%'
'cat %datei_1%'
EOF
Bitte warten ..
Mitglied: ralfkausk
15.09.2009 um 17:47 Uhr
oder ...
::: Dateien erzeugen
echo "eins" > eins
echo "zwei" > zwei

::: Variablen erstellen
erster=`cat eins`
zweiter=´cat zwei`

::: Script
cat << EOF
$erster
$zweiter
EOF

::: Ausgabe
eins
zwei
Bitte warten ..
Mitglied: QuasimodosKlon
17.09.2009 um 09:03 Uhr
Hm, das erste Beispiel funktioniert bei mir gar nicht, und das zweite ist nicht das, was ich meine.

Textdatei 'testfile' enthält:
01.
Die Variable TESTVAR enthält: $TESTVAR
Shell-Script 'heredoctest' enhält:
01.
#!/bin/bash 
02.
 
03.
TESTVAR=Testwert 
04.
 
05.
cat <<_EOT_ 
06.
'cat %testfile%' 
07.
`cat %testfile%` 
08.
`cat testfile` 
09.
_EOT_
Ausgabe:
01.
cat: %testfile%: Datei oder Verzeichnis nicht gefunden 
02.
'cat %testfile%' 
03.
 
04.
Die Variable TESTVAR enthält: $TESTVAR
Soll:
01.
Die Variable TESTVAR enthält: Testwert
Bitte warten ..
Mitglied: RiffRaff
22.09.2009 um 19:59 Uhr
Wie "source führt aus"?

Bsp.: Eine Datei die die Namen enthält, bsp. "namen.txt"
### Meine Name
Vorname=Hans
Nachname=Mustermann
###
## Ende


Eine Datei, die Begrüssen soll, bsp.: gruss.sh

#!/bin/sh
NAMENDATEI=namen.txt
### Jetzt sourcen wir die Namen - befindet sich im gleichen Verzeichnis wie das Shellscript
. ./$NAMENDATEI
##
### Variablen sind nun verfügbar
echo "Guten Tag $Vorname $Nachname"
echo "Hau bloss ab, Du Hund"
###

Oder habe ich es auch falsch verstanden? Sourcen ist doch wunderbar.
Bitte warten ..
Mitglied: QuasimodosKlon
01.01.2010 um 14:22 Uhr
Zitat von RiffRaff:
Wie "source führt aus"?
[...]
Oder habe ich es auch falsch verstanden? Sourcen ist doch wunderbar.

Öhm ja, nicht die Variablen sollen per Quelle gelesen werden, sondern genauer ausgedrückt ein Template, in welches Variablen eingefügt werden, die im Script selbst definiert sind.

z.B. Quell-Template "test.txt":
01.
Hallo $var1! 
02.
Hier ist $var2.
Beim Sourcen käme der Fehler, daß das Kommando "Hallo" nicht gefunden wird.

Hab's nach langem Probieren mittlerweile so gelöst:
01.
#/bin/bash 
02.
var1=Menschen 
03.
var2='Zeile 2' 
04.
 
05.
function template 
06.
{  
07.
  eval "echo \"`cat $1`\"" 
08.
09.
 
10.
template test.txt>testout.txt
Ergebnis:
Hallo Menschen! 
Hier ist Zeile 2.
Also im Prinzip genau was ich suchte, und funktioniert über mehrere Zeilen. Fällt jemanden vielleicht noch eine geschicktere Variante ein?

lg Quasi
Bitte warten ..
Mitglied: QuasimodosKlon
22.01.2010 um 13:21 Uhr
Ok, kommt wohl nix mehr, dann mache ich mal zu... *gelöst*
Bitte warten ..
Neuester Wissensbeitrag
Internet

Unbemerkt - Telekom Netzumschaltung! - BNG - Broadband Network Gateway

(3)

Erfahrungsbericht von ashnod zum Thema Internet ...

Ähnliche Inhalte
Batch & Shell
Powershell - In Textdatei suchen und ersetzen (1)

Frage von Raaja89 zum Thema Batch & Shell ...

Batch & Shell
gelöst Variablen Zusammenbauen 2.0 ( Batch ) (6)

Frage von clragon zum Thema Batch & Shell ...

Batch & Shell
gelöst FOR Loop Variablen ( Batch ) (2)

Frage von clragon zum Thema Batch & Shell ...

Batch & Shell
gelöst Grosses Variablen Problem ( Batch) (30)

Frage von clragon zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Switche und Hubs
Trunk für 2xCisco Switch. Wo liegt der Fehler? (15)

Frage von JayyyH zum Thema Switche und Hubs ...

DSL, VDSL
DSL-Signal bewerten (13)

Frage von SarekHL zum Thema DSL, VDSL ...