2016-05-01 5 views
0

Я пытаюсь передать аргумент в мой скрипт bash через мой скрипт cgi. Это может показаться немного запутанным, так вот объяснение,Отправка аргумента из скрипта CGI в качестве аргумента сценария bash

У меня есть Баш скрипт называется script.sh который принять один аргумент позволяет сказать name так что я выполнить этот сценарий, как это,

bash script.sh myName

тогда имя записывается в текстовый файл, а затем я могу прочитать его из этого текстового файла.

Который работает просто отлично, но я хочу, чтобы быть в состоянии выполнить эту же команду через CGI, так что я сделал это в моем файле CGI,

`/bin/echo "bash script.sh myName"`; 

Теперь я выполняю этот CGI скрипт через мой веб-сервер, как это ,

http://localhost/index.cgi 

но myName не проходит в качестве аргумента для моей Баш скрипт и, следовательно, ничего не написано в текстовом файле.

Может кто-нибудь скажет мне, почему он не работает, когда я запускаю скрипт cgi, но отлично работает при запуске без скрипта cgi?

EDIT: Я также пробовал использовать exec(), но аргумент все равно не пройдет.

+0

На каком языке программирования написан сценарий CGI? –

+0

'#!/Bin/csh' поэтому его C-оболочка –

ответ

2

В комментариях к вопросу, который вы написали, что CGI-скрипт был написан в CSH.

Тогда это так просто, как следующее.

script.csh

#!/bin/csh 
./script.sh argX 

script.sh

#!/bin/bash 
echo 'hello,' $1 

Тестирование script.csh

./script.csh 
hello, argX 

Это не то, что вы ищете, пожалуйста, уточните.

+0

предположим, что' abcd' написано в текстовом файле, мой скрипт bash принимает аргумент и модифицирует значение 'abcd' с этим аргументом. когда я запускаю './index.cgi', он делает это отлично. но когда я запускаю его через веб-сервер i.e 'http: // localhost/index.cgi', этого не происходит, т. е. текстовый файл все еще говорит' abcd'. –

+0

У вас есть разрешение на запись в этот каталог? –

+0

@RileyWillow, какое серверное программное обеспечение вы используете (Nginx, Apache и т. Д.)? Есть что-то в журналах? –