@youceyiteng (優策 伊藤)

Are you sure you want to delete the question?

If your question is resolved, you may close it.

Leaving a resolved question undeleted may help others!

We hope you find it useful!

UNIXのプログラム内容を知りたいです。

解決したいこと

UNIXのプログラミングでどんな内容になっているか教えていただきたいです。
課題でこの中身を解説しなさいということなのですが調べても出てきません。
すみませんが教えていただけないでしょうか。

  1 #!/bin/bash
  2 if [ "$REQUEST_METHOD" = POST ]; then
  3 string=$( head --bytes="$CONTENT_LENGTH" )
  4 sstring=`echo $string | ./urldecode | sed s/hatsugen=//g`
  5 a=a
  6 fi
  7 if [ "$REQUEST_METHOD" = GET ] ; then
  8    sting=$QUERY_STRING
  9    sstring=`echo $string | ./urldecode | sed s/hatsugen=//g`
 10 fi
 11 echo 'Content-Type: text/html; CHARSET=UTF-8'
 12 echo ''
 13 echo 'Refresh:30'
 14 echo '<html>'
 15 echo '<form method="post" action="kadai02.sh">'
 16 echo '書き込む内容:<input size="50" type="type="text" name="hatsugen" maxlength="150">'
 17 echo '<input type ="submit" value="送信"><input type="reset" value="リセット">'
 18 echo'</form>'
 19 echo '-----------------------------------------------------------'>>a.txt
 20 echo '<hr>'
 21 echo '「'$sstring'」'>>a.txt
 22      /bin/date +"%Y年%m月%d日(%a)%H時%M分%S秒">>a.txt
 23 echo '<pre>'
 24 tac a.txt
 25 echo '</pre>'
 26 echo '</html>'






0 likes

1Answer

パッと見た感じは、CGI処理するシェルスクリプトのようですが・・・

課題ということは、基礎知識は学んでいるのですよね?
まずは自分で1行1行調べて、理解できる部分と理解できない部分を分けましょう。
そのうえで、理解できていない部分がどこか示して質問しましょう。

質問テンプレートにも調べたことを書く項目がありましたよね?

2Like

Comments

  1. @youceyiteng

    Questioner

    すみません。
    理解できている部分は
    13 echo 'Refresh:30'
    14 echo '<html>'
    15 echo '<form method="post" action="kadai02.sh">'
    16 echo '書き込む内容:<input size="50" type="type="text" name="hatsugen" maxlength="150">'
    17 echo '<input type ="submit" value="送信"><input type="reset" value="リセット">'
    18 echo'</form>'
    19 echo '-----------------------------------------------------------'>>a.txt
    20 echo '<hr>'
    21 echo '「'$sstring'」'>>a.txt
    22 /bin/date +"%Y年%m月%d日(%a)%H時%M分%S秒">>a.txt
    23 echo '<pre>'
    24 tac a.txt
    25 echo '</pre>'
    26 echo '</html>'
    ここはわかるのですが2行目から11行目がわかりません。

    ここのわからない部分は授業で触れていませんでした。
    if [ "$REQUEST_METHOD" = POST ]; then これはポストメソッドを呼び出すとかであってますか?
  2. あっています。
    CGI プログラムの書き方、Webリクエストの GET や POST については学んだのですね?
    string=$( head --bytes="$CONTENT_LENGTH" ) で head コマンドを実行して 標準入力から変数CONTENT_LENGTHバイト数分の文字列を読み込んで 変数 string に代入しているというのは理解できますか?
  3. @youceyiteng

    Questioner

    分かりました。
    学びました。
    理解できます。
  4. あと分からないところはどこでしょう?
    a=a は私にも謎です。
  5. @youceyiteng

    Questioner

    sstring=`echo $string | ./urldecode | sed s/hatsugen=//g`
    これと
    ifの後にあるfiっていうのはif文が終わりますってことであってますか?
  6. echoで変数stringの内容を出力して、urldecode でURLデコードして、sedで hatsugen= を削除して変数 sstring に代入します。
    fi は if の終わりであっています。そこはシェルスクリプトの基本を学んだ方がいいですね。
  7. @youceyiteng

    Questioner

    ありがとうございます。勉強に育みたいと思います。助かりました。

Your answer might help someone💌