ubuntuusers.de

HTML-Ausgabe

Status: Gelöst | Ubuntu-Version: Ubuntu 16.04 (Xenial Xerus)
Antworten |

Neuling9666

Anmeldungsdatum:
28. Juni 2017

Beiträge: 4

Hallo ich blicke im Moment nicht so ganz durch wie ich meine Bash Ausgaben als HTML-File ausgeben kann. Kann mir vlt. Jemand weiterhelfen?

Vielen Dank im voraus Grüße Neuling

seahawk1986

Anmeldungsdatum:
27. Oktober 2006

Beiträge: 11269

Wohnort: München

HTML ist eine Auszeichnungssprache, also musst du die gewünschten Auszeichnungselemente an der richtigen Stelle vor bzw. nach den Bash-Ausgabe platzieren und das Ergebnis in eine Datei schreiben.

Der einfachste Fall ist reiner Text:

echo "Hallo Welt!" > hallo.html

Und das kann man dann beliebig verkomplizieren, um sich ein HTML-Dokument zusammenzubauen, z.B. mit Bash-Funktionen, die bestimmte Elemente ausgeben (da gibt es auch noch elegantere Wege wie Here Documents statt stupide wiederholten echo-statements, wenn man mehrere Zeilen Text zusammen ausgeben lassen möchte):

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
#!/bin/bash

print_head() {
  echo '<!DOCTYPE html>'
  echo '<html>'
  echo '<head>'
  echo '  <meta charset="utf-8"/>'
  echo '</head>'
}

print_begin_body() {
  echo '<body>'
}

print_heading_1() {
  echo '<h1>'"$1"'</h1>'
}

print_paragraph() {
  echo '<p>'"$1"'</p>'
}

print_pre() {
  echo '<pre>'
  echo "$1"
  echo '</pre>'
}


print_end_body() {
  echo '</body>'
}

print_end_html() {
  echo '</html>'
}

# Ab hier nutzen wir die Funktionen, um die HTML-Seite zusammenzubauen:
print_head
print_heading_1 "$(pwd) am $(date +"%d.%m.%Y %H:%M:%S")"
print_paragraph "Falls es jemanden interessiert, was aktuell im Arbeitsverzeichnis enthalten ist:"
print_pre "$(ls -l)"
print_end_body
print_end_html
bash create_html_example.sh > test.html 

Für kleinere Sachen ist das ganz nett, für aufwendige, dynamisch erstellte Seiten mit vielen sich wiederholenden Elementen wäre ein richtiges Templating-System (und eine Sprache, die es einem leichter macht sie mit einem Webserver zu verheiraten - z.B. PHP, Perl, Python) vermutlich praktischer.

rklm Team-Icon

Projektleitung

Anmeldungsdatum:
16. Oktober 2011

Beiträge: 13219

seahawk1986 schrieb:

Und das kann man dann beliebig verkomplizieren, um sich ein HTML-Dokument zusammenzubauen, z.B. mit Bash-Funktionen, die bestimmte Elemente ausgeben (da gibt es auch noch elegantere Wege wie Here Documents statt stupide wiederholten echo-statements, wenn man mehrere Zeilen Text zusammen ausgeben lassen möchte):

Vor allem, weil man in Here-Docs auch Variablen verwenden kann.

track

Avatar von track

Anmeldungsdatum:
26. Juni 2008

Beiträge: 7174

Wohnort: Wolfen (S-A)

Hi Neuling9666,

zuerst mal herzlich willkommen hier auf dem Forum !

So ein "HTML-File" ist im Prinzip tatsächlich nichts anderes als eine gewöhnliche Textdatei,
die allesdings strukturiert ist durch "Tags" (= "Klebeschildchen"), die festlegen, was mit dem jeweilgen Textstück gemacht werden soll.

Mit das einfachste Beispiel wäre so ein "Hallo Welt":

track@track:~$ echo '<html>
<body>
Hallo Welt
</body>
</html>'   >  hallo.html
track@track:~$ firefox hallo.html

track@track:~$ echo '<html>                                  
<body>
<h2><center>Hallo Welt</center></h2>
</body>
</html>'   >  hallo2.html
track@track:~$ firefox hallo2.html 

Das 1. Beispiel ist der Minimalfall: Du musst ihm wenigstens verraten, dass das HTML sein soll, und dass der Text auch angezeigt werden soll ("Ausgabe-Körper").
Im 2. Beispiel siehst Du, wie die Formatierung als Überschrift und zentriert das Aussehen des Textes verändert.
Und Du musst normalerweise alle Tags auch wieder schließen, rückwärts in der Reihenfolge, wie Du sie geöffnet hast.

Ansonsten ist das in einem Skript ganz simpel mit einem echo und einer Dateiumleitung zu erledigen, wie bei jedem anderen Text auch.

LG,

track

Antworten |