Top-Themen

Aktuelle Themen (A bis Z)

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, 11850 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
Variable in TextDatei auslesen
gelöst Frage von arvaxtrBatch & Shell5 Kommentare

Hallo Leute, ich habe eine TextDatei, in der eine Benutzervariable steht: %MyVar% ist als Benutzervariable in den Umgebungsvariablen definiert. ...

Batch & Shell
Textdatei zeilenweise in Variable schreiben
gelöst Frage von goodbytesBatch & Shell20 Kommentare

Hallo, mit einer Batch möchte ich mehrere Laufwerke mappen, abhängig vom Usernamen. Klar könnte ich auch für jeden User ...

Perl
In Textdatei nach String suchen und diesen als Variable weiterverarbeiten
gelöst Frage von hokoPerl4 Kommentare

Hallo, Ich möchte in einem Pelrscript eine Textdatei nach einem String durchsuchen und diesen dann weiterverarbeiten. Der zu suchende ...

Batch & Shell
Jede Zeile einer Textdatei in eigene Variable speichern
Frage von tomaschkuBatch & Shell4 Kommentare

Hallo erstmal, Da ich keine passende Antwort auf meine Frage gefunden habe, will ich es hier versuchen. Als Beispiel: ...

Neue Wissensbeiträge
Windows 10

Autsch: Microsoft bündelt Windows 10 mit unsicherer Passwort-Manager-App

Tipp von kgborn vor 11 StundenWindows 101 Kommentar

Unter Microsofts Windows 10 haben Endbenutzer keine Kontrolle mehr, was Microsoft an Apps auf dem Betriebssystem installiert (die Windows ...

Sicherheits-Tools

Achtung: Sicherheitslücke im FortiClient VPN-Client

Tipp von kgborn vor 13 StundenSicherheits-Tools

Ich weiß nicht, wie häufig die NextGeneration Endpoint Protection-Lösung von Fortinet in deutschen Unternehmen eingesetzt wird. An dieser Stelle ...

Internet

USA: Die FCC schaff die Netzneutralität ab

Information von Frank vor 1 TagInternet3 Kommentare

Jetzt beschädigt US-Präsident Donald Trump auch noch das Internet. Der neu eingesetzte FCC-Chef Ajit Pai ist bekannter Gegner einer ...

DSL, VDSL

ALL-BM200VDSL2V - Neues VDSL-Modem mit Vectoring von Allnet

Information von Lochkartenstanzer vor 1 TagDSL, VDSL2 Kommentare

Moin, Falls jemand eine Alternative zu dem draytek sucht: Gruß lks

Heiß diskutierte Inhalte
TK-Netze & Geräte
VPN-fähige IP-Telefone
Frage von the-buccaneerTK-Netze & Geräte16 Kommentare

Hi! Weiss noch jemand ein VPN-fähiges IP-Telefon mit dem man z.B. einen Heimarbeitsplatz gesichert anbinden könnte? Habe nur einen ...

Windows Server
GPO nur für bestimmte Computer
Frage von Leo-leWindows Server13 Kommentare

Hallo Forum, gern würde ich ein Robocopy script per Bat an eine GPO hängen. Wichtig wäre aber dort der ...

Windows Server
KMS Facts for Client configuration
Frage von winlinWindows Server13 Kommentare

Hey Leute, wir haben in unserem Netz nun einen neuen KMS Server. Haben Bestands-VMs die noch nicht aktiviert sind. ...

Netzwerkgrundlagen
Laufwerkszuordnung mit zwei IPs
Frage von Alex29Netzwerkgrundlagen12 Kommentare

Hallo in die Runde, Ich als Hobbyadmin hätte mal wieder eine Frage an die Profis. Ich habe ein Netzwerk ...