2016-05-01 20 views
0

引数をCGIスクリプトを使用してbashスクリプトに渡そうとしています。これには、ここでの説明、CGIスクリプトから引数をbashスクリプト引数として送信する

私は1つの引数を受け入れscript.shと呼ばれるのbashスクリプトを持っているがname を言うことができますされたので、私は、このよう

bash script.sh myName

このスクリプトを実行し、少し混乱に聞こえるかもしれません名前がテキストファイルに書き込まれ、その後、そのテキストファイルから名前を読み取ることができます。今、私はこのように私のウェブサーバを通じて、このCGIスクリプトを実行するだけで正常に動作しますが、私は、CGIを介してこれと同じコマンドを実行できるようにしたいので、私は私のCGIファイル内にこれをした、

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

http://localhost/index.cgi 

けどmyNameは私のbashスクリプトの引数として渡されていないので、何もテキストファイルに書き込まれません。

誰でも私がcgiスクリプトを実行しているときにうまくいかない理由を教えてもらえますか?cgiスクリプトなしで実行するとうまく動作します。

編集: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'を実行すると、完全に実行されます。ウェブサーバー、すなわち 'http:// localhost/index.cgi'を実行しても実行されない場合、つまりテキストファイルには' abcd'と表示されます。 –

+0

そのディレクトリへの書き込み権限がありますか? –

+0

@RileyWillow、どのサーバソフトウェアを実行していますか(Nginx、Apacheなど)?ログには何かありますか? –

関連する問題