Je veux savoir s'il existe un moyen d'utiliser Bash (Shell Script) pour faire des pages Web, comme Perl, C++ et d'autres via CGI. Et s'il y a un moyen, où je peux trouver un bon hébergement gratuit pour cela?Shell script pour le Web
Répondre
Ceci est certainement possible, et à peu près n'importe quel hébergement partagé basé sur Linux (ou basé sur BSD, je suppose) serait capable de le faire. Je l'ai fait pour de petites pages de test, etc sur mon compte à bas prix 1 & 1.
Sur mon hôte, je viens d'appeler un fichier "foo.cgi", et j'ai mis la ligne #!/bin/sh
en haut. Fonctionne bien. Bien sûr, c'est un gâchis pour tout ce qui est compliqué.
#!/bin/sh
cat <<banana
Content-Type: text/html
<html>
<head>
<title>Hello, World!</title>
</head>
<body>
<h1>Hello, World!</h1>
</body>
</html>
banana
De toute évidence, un vrai script pourrait faire autre chose. Les informations HTTP sont généralement dans les variables d'environnement, mais je ne peux pas me rappeler exactement comment cela fonctionne et cela peut varier en fonction du serveur web impliqué.
Ensuite, vous faites cela en utilisant CGI? Pourquoi vous utilisez 'cat'. Je ne peux pas utiliser 'echo'? –
Bien sûr, vous pouvez utiliser 'echo', mais la syntaxe pour renvoyer quelque chose qui contient des retours à la ligne est plus bizarre. –
@Pointy: Vous avez dit que vous avez utilisé 1 & 1. Alors c'est la société d'hébergement qui devrait travailler avec CGI et Bash? –
Même s'il est possible de le faire, il ne serait pas pratique d'essayer d'utiliser des scripts shell pour servir de pré-processeur pour les pages Web. Je suppose que vous pourriez toujours créer un gestionnaire Apache qui déclencherait votre script shell et Apache prendrait la sortie de votre script shell et le renvoyer au client. Cependant, l'utilisation d'un script shell de cette manière poserait de nombreux problèmes de sécurité (dont aucun n'est insurmontable mais ils seraient néanmoins difficiles).
Eh bien, ce n'est pas vraiment différent de l'utilisation de PHP ou Python. – Pointy
Eh bien ... un peu. Perl et Python peuvent être "corrigés" dans le serveur web en utilisant leurs propres modules (respectivement mod_perl et mod_wsgi), de sorte que l'interpréteur fonctionne réellement en tant que partie du serveur, et il finit par être plus rapide que d'avoir à démarrer un processus distinct pour chaque demande. –
Le "gestionnaire Apache qui déclencherait votre script shell et Apache prendrait la sortie de votre script shell et le lançait au client" est-ce: http://en.wikipedia.org/wiki/Common_Gateway_Interface – slowdog
C'est très possible, et au moment où j'ai commencé dans l'entreprise, c'était la façon dont les choses étaient faites. La vraie différence étant, c'est que PHP fournit un moyen très pratique d'accéder aux données d'entrée, comme dans bash (bien que je suppose qu'il existe des utilitaires pour vous aider).) vous auriez besoin d'analyser et de gérer les entrées brutes au lieu des variables "cuites". En fonction de ce que vous essayez d'accomplir, c'est soit pratique soit l'autre extrême. Moi-même, j'utilise un script bash pour compiler ma page d'accueil avec des nouvelles et des bandes dessinées quotidiennes, mais celle-ci ne nécessite aucune entrée, mais simplement une routine cron.
Je vous recommande d'envisager de créer un wrapper PHP ou Python autour de votre script shell si vous préférez ne pas effectuer une réécriture totale. Laissez le script shell faire le backend et le wrapper fait le reste.
Peut-être jeter un oeil à http://nanoblogger.sf.net (comme point de départ)!
Voilà comment vous pouvez intégrer un saut de ligne, ... dans une chaîne entre guillemets (double):
NL="
"
CR="$(printf "\r")"
echo "abc${NL}def"
IFS=""
echo abc${NL}def
printf "%q\n" "abc${CR}${NL}def"
- 1. Script shell pour test
- 2. dans le script shell
- 3. script shell pour analyser le fichier journal
- 4. Script shell pour calculer le temps écoulé
- 5. Joli-print pour script shell
- 6. Shell Script pour télécharger des fichiers
- 7. Script shell pour récupérer le texte sélectionné et le modifier?
- 8. script shell + calculer réseau IP par script shell
- 9. À propos de Shell Script
- 10. script shell de base
- 11. Shell script pour copier des fichiers
- 12. Shell script pour arrêter un programme java
- 13. Écrire un script shell wrapper pour awk
- 14. Shell script pour renommer les fichiers
- 15. modèles de script shell
- 16. fond script shell
- 17. Shell erreur de script
- 18. Lecture dans le répertoire, script shell Unix
- 19. commande passwd dans le script shell
- 20. Shell Script avec Zenity
- 21. Validation des variables dans le script shell
- 22. pour la boucle/si la condition dans le script shell
- 23. Shell Script pour mettre à jour le contenu d'un dossier
- 24. idiomes pour renvoyer plusieurs valeurs dans le script shell
- 25. Script shell pour tester le programme de ligne de commande
- 26. Script shell pour importer le fichier de vidage mysql
- 27. script shell pour supprimer les répertoires sélectionnés
- 28. Script shell pour parcourir les fichiers récursivement
- 29. Script shell, fichier de recherche pour chaîne
- 30. Shell script pour traiter les fichiers
Il serait utile de fournir plus de détails sur ce que vous essayez de faire. – rboarman
pourquoi voudriez-vous faire ceci? – eruciform
Je veux utiliser Shell Script comme les gens utilisent PHP. Et je le veux, parce que je me demande si je pourrais porter des projets que j'ai réalisés en utilisant Bash sur une page web. –