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, 11635 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 ..
Ähnliche Inhalte
Batch & Shell
Jede Zeile einer Textdatei in eigene Variable speichern (5)

Frage von tomaschku zum Thema Batch & Shell ...

Batch & Shell
gelöst Ähnliche Dateinamen zusammen verarbeiten (2)

Frage von JT-131 zum Thema Batch & Shell ...

Batch & Shell
gelöst Powershell - In Textdatei suchen und ersetzen (5)

Frage von Raaja89 zum Thema Batch & Shell ...

Neue Wissensbeiträge
Windows Update

Microsoft Update KB4034664 verursacht Probleme mit Multimonitor-Systemen

(3)

Tipp von beidermachtvongreyscull zum Thema Windows Update ...

Viren und Trojaner

CNC-Fräsen von MECANUMERIC werden (ggf.) mit Viren, Trojanern, Würmern ausgeliefert

(4)

Erfahrungsbericht von anteNope zum Thema Viren und Trojaner ...

Windows 10

Windows 10: Erste Anmeldung Animation deaktivieren

(3)

Anleitung von alemanne21 zum Thema Windows 10 ...

Heiß diskutierte Inhalte
SAN, NAS, DAS
MSA 2050 RAID Konfig (20)

Frage von Leo-le zum Thema SAN, NAS, DAS ...

Hosting & Housing
CNAME auf FTP funkt nicht mehr (7)

Frage von Wintektiv zum Thema Hosting & Housing ...