J'ai appris le shell avec un excellent tutoriel, linuxcommand.org. Après beaucoup d'apprentissage et de pratique pour naviguer dans les répertoires, éditer des fichiers, etc., je suis passé à l'écriture de scripts shell.
Un des premiers tutoriels de linuxcommand.org consiste à utiliser HTML dans un script shell pour renvoyer des informations système. Vous pouvez le consulter ici. Je suis actuellement sur la section 'Substitution de commandes et constantes'.
Une des premières choses dans le tutoriel dit que le fichier pourrait être utilisé en redirigeant la sortie standard vers .html:
~me$ ./sysinfo_page > sysinfo_page.html
mon script ressemble exactement à celui du lien, mais je le posterai quand même:
(la seule différence est que Linux utilise la variable d'environnement $HOSTNAME, sur OS X c'est $LOGNAME)
#!/bin/bash
# sysinfo_page - Génère une page HTML basée sur les informations système
title="Mes informations système"
RIGHT_NOW=$(date +"%x %r %Z")
TIME_STAMP="Mis à jour le $RIGHT_NOW par $USER"
cat <<- _EOF_
$title $LOGNAME
$title $LOGNAME
$TIME_STAMP
_EOF_
Lorsque je saisis dans la ligne de commande:
~me$ ./sysinfo_page
cela me donne le contenu uniquement de l'HTML, mais ce n'est pas formaté et affiche toujours les balises. Je suppose qu'en redirigeant la sortie standard vers une extension .html, cela me donnerait la page HTML formatée, sans les balises mais je ne le saurais pas parce que, après avoir donné la permission rwx avec 755, je saisis:
~$me ./sysinfo_page.html
Et j'obtiens cette erreur:
./sysinfo_page.html: ligne 1: erreur de syntaxe près du jeton inattendu "newline"
./sysinfo_page.html: ligne 1: `'
Je comprends d'après ce que j'ai lu que < > indique un espace réservé, mais c'est la syntaxe HTML... et exactement comment ça marche dans le tutoriel. J'ai pensé qu'ajouter un pourrait arranger les choses, mais ça n'a pas fonctionné. Ma question est, qu'est-ce que je fais de travers ici? Comment puis-je obtenir l'affichage correct de la page HTML?