Nous utilisons des cookies pour améliorer votre expérience.

MacBidouille

Créer un script Unix sous OS X

Initiation et rappels des bases pour réaliser un script Shell.


Dernière étape : on construit la page html pour de bon :-)

Une page html qui se respecte contient des balises <html>, <head>, <body>, ... . Je vais donc faire des fonctions pour écrire tout cela :

Entre le header et le footer, il va falloir que je place le contenu de ma page, à savoir le résultat des trois fonctions make_html_adapter, make_html_config et make_html_devices. Entre chacune des ces trois fonctions, je veux sauter des lignes, afin de bien différencier les résultats de chacune des fonctions. Je réalise donc une petite boucle itérative "for", qui va chercher dans le dossier où je me trouve les fichiers temporaires, c'est à dire des fichiers dont le nom commence par tmp_. (le ^ me permet comme avant de spécificier le début de la ligne, donc un fichier dont le nom commence par tmp_ et non pas juste un fichier dont le nom contiendrait tmp_ . La variable $i va donc prendre trois valeurs possibles (le nom des trois fichiers temporaires), et pour chacun des ces fichiers, je vais l'afficher, et rajouter deux balises <br>, afin de passer des lignes. Là, mon script est dangeureux, car si le dossier dans lequel je travaille contient un autre fichier temporaire, nommé par exemple tmp_exemple, alors ce fichier sera aussi analysé. Pour être rigoureux et éviter les bugs, il faudrait donc que je rajoute une étape de contrôle pour ne traiter que les trois fichiers temporaires qui conviennent.

On approche du but final, il reste maintenant à régler les détails, comme par exemple le fait que je veuille partir d'une page html vide. Si elle existe, je veux donc l'effacer avant de lancer ce script, tout comme les différents fichiers temporaires. On va donc pour cela découvrir une nouvelle fonction, une fonction de test. Elle s'écrit entre [ ]. La syntaxe [ -f nom_fichier ] permet de tester si un fichier existe (dans le dossier où on se trouve). La syntaxe commande 1 && commande 2 permet de réaliser la commande 2 si la commande 1 est réalisée, sinon (si la commande 1 n'est pas réalisée), alors la commande 2 n'est pas éxecutée. La commande rm nom_fichier permet de détruire un fichier. Donc dans mon cas, la syntaxe [ -f nom_fichier ] && rm nom_fichier teste si un fichier nommé nom-fichier existe, et si oui, on l'efface. Je programme donc une fonction clear, qui me permet de partir de 0 à chaque fois que je lance mon script :

Et pour finir, la fonction principale qui va lancer tout cela, la fonction main () qui commence par faire appel à la fonction clear dans un premier temps, puis qui fait appel aux trois fonctions make_html (header, contenu puis footer), en plaçant tout dans la page html, que je nomme html_megaraid.php (cette page est aussi initialisée par la fonction clear). Le script se termine alors par la ligne main, ce qui a pour effet de lancer la fonction main, qui va elle même lancer les fonctions make_html, qui vont elles mêmes lancer les autres petites fonctions et ainsi de suite.

Partager sur

Sondage

Comptez-vous acheter un Vision Pro ?