Ho imparato la shell con un ottimo tutorial, linuxcommand.org. Dopo un sacco di apprendimento e pratica con la navigazione di directory, la modifica di file, ecc, ho passato alla scrittura di script di shell.
Uno dei primi tutorial di linuxcommand.org sta utilizzando HTML in uno script di shell per restituire alcune informazioni di sistema. Puoi verificarlo qui . Sono attualmente nella sezione "Sostituzione comandi e costanti".
Una delle prime cose del tutorial dice che il file potrebbe essere usato reindirizzando lo standard output a .html:
~me$ ./sysinfo_page > sysinfo_page.html
il mio script appare esattamente come quello sul link, ma lo pubblicherò comunque:
(l'unica differenza è che linux usa env var $ HOSTNAME, io sono su OS X ed è $ LOGNAME)
#!/bin/bash
# sysinfo_page - Generate an HTML page based on system information
title="My System Information"
RIGHT_NOW=$(date +"%x %r %Z")
TIME_STAMP="Updated on $RIGHT_NOW by $USER"
cat <<- _EOF_
<html>
<head>
<title>
$title $LOGNAME
</title>
</head>
<body>
<h1>$title $LOGNAME</h1>
<p>$TIME_STAMP</p>
</body>
</html>
_EOF_
Quando digito nella riga di comando:
~me$ ./sysinfo_page
mi fornisce il contenuto solo dell'HTML, ma non è formattato e visualizza ancora i tag. Suppongo che reindirizzando l'output standard a un'estensione .html mi darebbe la pagina HTML formattata, senza i tag, ma non lo saprei perché, dopo aver dato il permesso chmod rwx con 755, digito:
~$me ./sysinfo_page.html
E ottieni questo errore:
./sysinfo_page.html: line 1: syntax error near unexpected token 'newline'
./sysinfo_page.html: line 1: '<html>'
Capisco da cosa ho letto che < > indica un segnaposto, ma questa è la sintassi HTML ... e esattamente come funziona sul tutorial. Ho pensato che forse aggiungere <!DOCTYPE>
avrebbe risolto il problema, ma non l'abbiamo fatto. La mia domanda è, cosa sto sbagliando qui? Come posso visualizzare correttamente la pagina HTML?