• ベストアンサー

コマンドラインから、abc.cgi?以下を渡す方法

httpサーバーにて、 CGIで、GET方式で値を渡すと、?以降に値がついて渡されますが、 コマンドライン上から、 abc.cgi?以下を渡してみるにはどうしたらよいでしょうか。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

GETで受け取るCGIスクリプトをコマンドラインで確認したいん ですね。パラメータは環境変数QUERY_STRINGで渡されますから、 UNIXのcshだったら % setenv QUERY_STRING param=123&id=abc % abc.cgi sh, bashあるいはWindowsでもcygwinだったら) $ QUERY_STRING='param=123&id=abc'; export QUERY_STRING $ abc.cgi もしくは % env QUERY_STRING='param=123&id=abc' abc.cgi などで渡すことができるでしょう。DOSの世界ならちょっと むずかしいので、abc.cgiの冒頭に、 unless ($ENV{REQUEST_METHOD}) { $ENV{REQUEST_METHOD}='GET'; $ENV{QUERY_STRING}=shift; } などと書いておき、 C:\> perl abc.cgi param=123&id=abc と引き数に指定してやればQUERY_STRINGとして渡されます。 なお、CGI.pmを使っているならCGIモジュールをuseしてる箇所を use CGI qw(-debug); にし、 C:\> perl abc.cgi と実行すると、プロンプトからパラメータを読み込むオフラインモードに なりますから、そこでパラメータを指定することができます。 (offline mode: enter ....) param=123 id=abc このようにパラメータごとに改行してもかまいません。パラメータ 入力を終えるにはCntrlキー+D(DOSならCtrl+Z)を入力します。

defd
質問者

お礼

windows上とlinux上を行ったり来たりしているので、非常に助かりました。 いろいろ教えてくださって、どうもありがとうございました。

その他の回答 (2)

  • akino4
  • ベストアンサー率18% (35/185)
回答No.3

私の場合は、getとpostと引数をパラメータとしてみなすように関数を つかって毎回よびだしてたんんでシームレスにつかえてました。 負荷の上昇はそんなにみられなかったからそれで大丈夫なんでは?

  • ka-2
  • ベストアンサー率37% (22/58)
回答No.1

@ARGV($ARGV[0]など) を使うとうまくいくとおもいます。 例: ./aaa.cgi test で、 print "$ARGV[0]"; と実行すると「test」が代入されます。 ちょっと説明が下手ですが試してみてください。

関連するQ&A