• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

[solved] Quotings in einer Variablen speichern

Runic

Newbie
Hallo Welt!

Ich bin mit meinem, ohnehin wahrlich beschränktem Wissen am Ende. Ich habe nämlich folgendes Problem.

In einem Script werden bestimmte Dateien angelegt, "getart" und dann gemailt. Das Problem dabei ist die Betreffzeile, denn diese setzt sich aus "hardcoded" Text und aus Variablen zusammen.

kurz gesagt:
Betreffzeile soll lauten
Code:
Backup vom tt-mm-yyyy

Problematisch wird es jetzt, der mail befehl sieht nämlch folgend aus:

Code:
mail ${mailto} < ${mailbody} -a ${sicherung} -s ${betreff}

Wie Ihr sehen könnt wird "mail" nur mit Variablen gefüttert, dabei steht
mailto für den Empfänger der Nachricht
mailbody enthält den Pfad zu einer Textdatei die als Mailbody verwendet wird
sicherung enthält den pfad zum tar-Archiv, das als Anhang versendet wird
betreff enthält den Betreff :shock:

Da in der Variablen "betreff" Leerzeichen vorkommen habe ich versucht diese bei der Wertzuweisung der Variablen "betreff" zu quoten. Jedoch scheint das absolut nicht zu klappen, da nicht nur "mailto" eine mail erhält, sondern auch jedes Wort aus der Betreffzeile als User auf dem Host angesehen wird, auf dem das Script läuft.

So sieht meine Wertzuweisung für betreff aus:
Code:
betreff=$'Info Backup vom '${datum}
Folgende Versionen habe ich auch durchprobiert, diese gaben entweder Fehlermeldungen oder es wurden trotzdem alle (bis auf erste Wort) Wörter in der Betreffzeile als Empfänger interpretiert
Code:
betreff='Info Backup vom '${datum}
betreff="Info Backup vom ${datum}"
betreff="Info Backup vom "${datum}
betreff="'Info Backup vom '${datum}"
betreff=Info\ Backup\ vom\ "${datum}

Wie kann ich das hinkriegen?

Vielen Dank

D aus B[/code]
 

ninguno

Member
du musst die variable in quotes setzen:
Code:
betreff='Info Backup vom '${datum}
mail ${mailto} < ${mailbody} -a ${sicherung} -s "${betreff}"
 
OP
R

Runic

Newbie
Das war das Problem, vielen dank für die Hilfe.

Code:
thread=gelöst

Ich habe quasi "falschrum" gedacht, und versucht die Quotes in die Variable zu übergeben;klar das es nicht funktionieren kann, da ja schon beim "parsen" der Zuweisung die Quotes ausgewertet werden und als normaler String behandelt werden. Die Ausgabe der Variablen aber einach abzufangen und zu quoten, daran habe ich nicht gedacht.

Vielen Dank, manchmal liegt die Lösung eben auf der anderen Seite.
 
Oben