我想知道是否有任何方法可以使用Bash(Shell Script)通过CGI制作网页,如Perl,C ++等。如果有任何办法,我可以在哪里找到一个好的免费托管服务?
答案 0 :(得分:5)
这绝对是可能的,几乎任何基于Linux(或基于BSD,我猜)的共享主机都可以做到。我已经在我便宜的1& 1帐户上为小测试页面等做过。
在我的主机上,我只调用一个文件“foo.cgi”,然后将#!/bin/sh
行放在顶部。工作良好。当然,对于任何复杂的事情来说都是一团糟。
#!/bin/sh
cat <<banana
Content-Type: text/html
<html>
<head>
<title>Hello, World!</title>
</head>
<body>
<h1>Hello, World!</h1>
</body>
</html>
banana
显然,真正的脚本可以做其他事情。 HTTP信息通常在环境变量中,但我无法清楚地回忆起它是如何工作的,它可能会因所涉及的Web服务器而异。
答案 1 :(得分:2)
这是非常可能的,当我开始从事这项业务时,事情已经完成了。虽然我使用perl或C来代替bash脚本。
真正的区别在于,PHP提供了一种非常方便的方式来访问输入数据,就像在bash中一样(虽然我假设有实用程序可以帮助你),你需要解析和处理原始输入,而不是“煮熟的“变量。
完全取决于你想要完成的任务,它既方便又另一种极端。我,我自己,使用bash脚本编写我的主页,每日新闻和漫画,但那个不需要输入,只需要一个cron例程。
答案 2 :(得分:2)
如果您不想完全重写,我建议您考虑在shell脚本周围创建一个Python或PHP包装器。让shell脚本执行后端操作,然后包装器执行其余操作。
答案 3 :(得分:1)
即使可以这样做,尝试使用shell脚本作为网页的预处理器也是不切实际的。我想你总是可以创建一个Apache处理程序来触发你的shell脚本,而Apache会从你的shell脚本中获取输出并将它扔回客户端。但是,以这种方式使用shell脚本会带来许多安全挑战(其中没有一个是不可克服的,但它们仍然具有挑战性。)
答案 4 :(得分:1)
或许看看http://nanoblogger.sf.net(作为起点)!
答案 5 :(得分:1)
以下是如何在(双)引用字符串中嵌入换行符...:
NL="
"
CR="$(printf "\r")"
echo "abc${NL}def"
IFS=""
echo abc${NL}def
printf "%q\n" "abc${CR}${NL}def"