Shell Script для Интернета - PullRequest
1 голос
/ 12 июля 2010

Я хочу знать, есть ли способ использовать Bash (Shell Script) для создания веб-страниц, таких как Perl, C ++ и другие, через CGI.И если есть какой-нибудь способ, где я могу найти хороший бесплатный хостинг для него?

Ответы [ 6 ]

5 голосов
/ 12 июля 2010

Это определенно возможно, и почти любой совместный хостинг на базе 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 обычно находится в переменных среды, но я не могу точно вспомнить, как именно это работает, и она может варьироваться в зависимости от используемого веб-сервера.

2 голосов
/ 12 июля 2010

Я бы порекомендовал вам рассмотреть возможность создания оболочки Python или PHP вокруг сценария оболочки, если вы не хотите полностью переписывать.Позвольте сценарию оболочки выполнить бэкэнд, а оболочка сделает все остальное.

2 голосов
/ 12 июля 2010

Это очень возможно, и в то время, когда я начинал в бизнесе, это было так, как все было сделано.Хотя вместо сценариев bash я использовал perl или C.

Реальная разница заключается в том, что PHP предоставляет очень удобный способ доступа к входным данным, как, например, в bash (хотя я предполагаю, что есть утилиты дляпомочь вам) вам нужно будет проанализировать и обработать необработанный ввод вместо «готовых» переменных.

В зависимости от того, чего вы пытаетесь достичь, это либо удобно, либо с другой стороны.Я сам использую сценарий bash для компиляции своей домашней страницы с ежедневными новостями и комиксами, но для этого не требуется вводить данные, а требуется только процедура cron.

1 голос
/ 12 июля 2010

Вот как вы можете вставить символ новой строки, ... в (двойную) строку в кавычках:

NL="
"
CR="$(printf "\r")"

echo "abc${NL}def"

IFS=""
echo abc${NL}def

printf "%q\n" "abc${CR}${NL}def"
1 голос
/ 12 июля 2010

Может быть, посмотрите на http://nanoblogger.sf.net (в качестве отправной точки)!

1 голос
/ 12 июля 2010

Несмотря на то, что это возможно, нецелесообразно пытаться использовать сценарии оболочки, служащие в качестве препроцессора для веб-страниц. Я полагаю, что вы всегда можете создать обработчик Apache, который будет запускать ваш сценарий оболочки, а Apache будет принимать вывод из сценария оболочки и возвращать его клиенту. Тем не менее, использование сценария оболочки таким образом создаст много проблем безопасности (ни одна из которых не является непреодолимой, но, тем не менее, будет сложной).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...