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

Bash-Skript: Variablenwert aus Datei zuweisen und dabei enthaltene Variablen erhalten bzw. durch dessen Wert ersetzen

Frage Entwicklung Batch & Shell

Mitglied: robob

robob (Level 1) - Jetzt verbinden

09.12.2013, aktualisiert 18:28 Uhr, 2394 Aufrufe, 4 Kommentare

Hallo,

ich habe gerade das Problem, dass ich in einem Bash-Skript auf einem Debian-Linux-Server Variablen mit Werte aus jeweils einer Datei "befüllen" muß.
Diese Dateien enthalten alle nur eine Zeile und diese soll einer entsprechenden Variablen zugewiesen werden, was ja nicht schwer ist:

$testvariable=`cat /home/test/testvariable`

Allerdings habe ich jetzt noch das Problem, dass diese in den Dateizeilen gespeicherte Text evtl. nochmals Variablen enthalten können, die dann auch entsprechend "aufgelöst" werden sollen.
Die Variablenwerte stehen deswegen in Dateien, da diese durch eine HTML-Konfigurationsoberfläche so erzeugt werden und jetzt von mir in Bash-Skripts verwendet werden sollen.

Beispiel:
Inhalt Datei testvariableA
13:30
Inhalt Datei testvariableB
Letzte Erfassung $testvariableA Uhr.

$testvariableA=`cat /home/test/testvariableA`
$testvariableB=`cat /home/test/testvariableB`

Ausgabe von $testvariableB:
Letzte Erfassung $testvariableA.

Die $testvariableA wird also hier nicht ersetzt, im Gegensatz zum herkömmlichen Weg wenn ich $testveriableB in gleicher Art direkt "definiere", ohne dass Werte aus der Datei ausgelesen werden.

Gibt es eine Möglichkeit Variablenwerte aus einer Datei auszulesen und dort nochmals enthaltene Variablen durch die aktuellen Werte zu ersetzen anstelle, dass die "verschachtelte" Variablenbezeichnung als fixer String mit übernommen wird?

Besten Dank schon mal für Eure Tipps!

Grüße,
robob.
Mitglied: colinardo
09.12.2013 um 15:58 Uhr
Hallo robob,
kannst du z.B. mit sed machen:
testvariableB=$(sed -e "s/\$testvariableA/$testvariableA/g" /home/test/testvariableB)
Grüße Uwe
Bitte warten ..
Mitglied: robob
09.12.2013 um 17:37 Uhr
Hallo Uwe,

besten Dank, es funktioniert soweit.

Gibt es vielleicht auch noch eine einigermaßen einfache Möglichkeit $-Werte generell so ersetzen zu lassen, ohne dass ich vorher wissen muss, dass eine Variable $testvariableA vorkommt, denn ein Anwender kann über das Webkonfigurationsinterface direkt unterschiedlichste Variablen in den Dateien eintragen, die am Anfang der Bash-Skripte definiert werden?

Grüße,
robob.
Bitte warten ..
Mitglied: colinardo
LÖSUNG 09.12.2013, aktualisiert um 18:28 Uhr
Bitte warten ..
Mitglied: robob
09.12.2013 um 18:27 Uhr
Hallo Uwe,

ja, das hat mir jetzt weitergeholfen, ich hatte zwar auch schon recherchiert aber darüber bin ich peinlicherweise nicht gestoßen.
Tausend Dank für Deine Tipps!!!

Habe es jetzt so realisiert:
testvariableB=`echo $(eval echo $(cat /home/test/testvariableA))`

Gruß,
robob.
Bitte warten ..
Ähnliche Inhalte
VB for Applications
gelöst VB Skript Excel Datei (3)

Frage von Frager zum Thema VB for Applications ...

Batch & Shell
Bash Script soll neue Datei erzeugen (2)

Frage von SpeakerST zum Thema Batch & Shell ...

XML
gelöst XML Datei per Skript ändern (12)

Frage von chrisen zum Thema XML ...

Neue Wissensbeiträge
Google Android

Cyanogenmod alternative Downloadquelle

(2)

Tipp von Lochkartenstanzer zum Thema Google Android ...

Batch & Shell

Batch als Dienst bei Systemstart ohne Anmeldung ausführen

(5)

Tipp von tralveller zum Thema Batch & Shell ...

Sicherheits-Tools

Sicherheitstest von Passwörtern für ganze DB-Tabellen

(1)

Tipp von gdconsult zum Thema Sicherheits-Tools ...

Heiß diskutierte Inhalte
Windows 7
gelöst Lokales Adminprofil defekt (25)

Frage von Yannosch zum Thema Windows 7 ...

LAN, WAN, Wireless
gelöst Statische Routen mit ISC-DHCP Server für Android Devices (22)

Frage von terminator zum Thema LAN, WAN, Wireless ...

Server
gelöst Wie erkennen, dass nur deutsche IPs Zugang zu einer Website haben? (22)

Frage von Coreknabe zum Thema Server ...

Exchange Server
gelöst Migration Exchange 2007 zu 2013 - Public Folder teilweise weg (16)

Frage von Andy1987 zum Thema Exchange Server ...