So drucken Sie Werte in verschiedenen Zeilen im Shell-Skript des E-Mail-Texts

So drucken Sie Werte in verschiedenen Zeilen im Shell-Skript des E-Mail-Texts

Unten finden Sie den Code zum Drucken des Inhalts der im Verzeichnis vorhandenen Dateien. Der Dateiinhalt ist:

apple 
banana 
grapes 
mango

Namen=()

FILES=/path_to_dir/*
for f in $FILES
do
   names+=($f)
done
result="$(cat ${names[@]})"
echo "$result"

echo "The  names are "$result"" | mailx -s "names are " [email protected]

dafür erhalte ich die folgende Ausgabe für die Ergebnisvariable

apple 
banana 
grapes 
mango

Wenn ich jedoch „$result“ in einer E-Mail drucke, erhalte ich die folgende Ausgabe im E-Mail-Text:

apple banana grapes mango

Ich möchte Namen in mehrzeiligen E-Mails wie diesen versenden:

apple 
banana 
grapes 
mango

Wie kann das erreicht werden?

Antwort1

Versuche es mitecho -e "The names are:\n" "$result"

Die -eOption ermöglicht die Interpretation des Zeilenumbruchzeichens \n; die Variable wird dann korrekt erweitert, indem sie ihre eigenen Anführungszeichen enthält.

verwandte Informationen