2016-05-01 5 views
0

Ich versuche, das Argument zu meinem Bash-Skript über meine CGI-Skript übergeben. Dies kann ein wenig verwirrend klingen, hier so ist die Erklärung,Senden Argument aus CGI-Skript als Bash-Skript-Argument

Ich habe Bash-Skript script.sh genannt, die ein Argument akzeptieren können sagen name so ausführen ich dieses Skript wie folgt,

bash script.sh myName

Die Der Name wird dann in eine Textdatei geschrieben, und dann kann ich ihn aus dieser Textdatei lesen.

Welche ganz gut funktioniert, aber ich möchte in die Lage, diesen gleichen Befehl durch cgi auszuführen, also tat ich dies in meiner cgi-Datei,

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

Nun ich so diesen CGI-Skript durch meinen Webserver ausführen

,
http://localhost/index.cgi 

aber myName vergehen nicht als Argument für meinen bash-Skript, und daher ist nichts auf der Textdatei geschrieben.

Kann mir bitte jemand sagen, warum es nicht funktioniert, wenn ich durch cgi-Skript laufen, aber funktioniert gut, wenn ohne ein CGI-Skript ausgeführt?

EDIT: ich auch exec() versucht hat, verwenden, aber das Argument würde noch nicht passieren.

+0

In welcher Programmiersprache ist das CGI-Skript geschrieben? –

+0

'#!/Bin/csh' also seine C-Shell –

Antwort

2

In den Kommentaren zu der Frage schrieben Sie, dass das CGI-Skript in CSH geschrieben wurde.

Dann ist es so einfach wie folgt.

script.csh

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

script.sh

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

Testing script.csh

./script.csh 
hello, argX 

Es ist nicht das, was Sie suchen, bitte klären.

+0

Angenommen,' abcd' ist in eine Textdatei geschrieben, mein Bash-Skript akzeptiert ein Argument und modifiziert den Wert von 'abcd' mit diesem Argument. wenn ich './index.cgi' starte, ist es perfekt. aber wenn ich es durch Webserver laufen lasse, d. h. "http: // localhost/index.cgi", geschieht dies nicht, d. h. die Textdatei sagt immer noch "abcd". –

+0

Haben Sie Schreibrechte für dieses Verzeichnis? –

+0

@RileyWillow, welche Server-Software laufen Sie (Nginx, Apache, etc)? Ist etwas in den Protokollen? –