uspTukubaiコマンドに関する様々な資料がここにあります。

 

 

魂内検索

DOCUMENTS

COMMAND

FORUM

UEC DOCS

VIDEO

 

ABC順リスト |  カテゴリ別リスト

(動画教材準備中)

run-cgi

<概要>

run-cgi:CGIシェルスクリプトの特定範囲だけを実行するデバッガ。

<書式>

Usage: run-cgi [option] <対象SHELL> <NAMEFILE> [<開始行>-<終了行>]
Version : Wed Oct  7 23:51:15 JST 2015

option一覧:
  --log <ファイル名>   ログ出力先を変える。
  --var <変数名>=<値>  変数代入値を差し替える。
  --break <行数>       ブレークポイントを入れる。
  --debug              run-cgi自身のdebug情報を出力する

使い方例:
  run-cgi CGI-SCRIPT namefile
  run-cgi CGI-SCRIPT namefile 4-6                           # CGIの4~6行目を実行。
  run-cgi --log ./errlog CGI-SCRIPT namefile                # 出力ログを"errlog"に保存しつつ実行。
  run-cgi --var tmp=/tmp/okada/tmp CGI-SCRIPT namefile      # 変数tmpに値を設定して実行。
  run-cgi --var dir=/home/usp,tmp=./tmp CGI-SCRIPT namefile # 複数の変数に代入して実行。

<説明>

run-cgiはrunをcgiスクリプトでも使えるようにしたコマンドです。

多くのオプションや使い方はrunと同じなので、基本的な使い方はrunのマ
ニュアルをご覧下さい。本マニュアルではrunと使い方が異なる点に絞って
説明をします。

<例>

簡単なCGIの例として、以下のようなCGI,HTMLとnamefileを用意した。
---------------------------------------------------------------
$ cat TOUROKU.CGI
#!/bin/bash -vx
#
# TOUROKU.CGI 名前と年代を登録する。
#
# written by Hoge (hoge@hogehoge.com) Sep. 15, 2011

exec 2> /dev/null

LANG=ja_JP.UTF-8
PATH=/home/UTL:/home/TOOL:$PATH

apld=.
tmp=/tmp/tmp_$$

dd bs=$CONTENT_LENGTH |
cgi-name -n_ -s_      > $tmp-name

echo "Content-type: text/html"
echo ""

cat $apld/TOUROKU.HTML

# </html>の後であるが、
# cat すればブラウザに文字が表示される。
# デバッグに便利
cat $tmp-name |
sed -e 's/$/<br>/g'

rm -f $tmp-*
exit 0

$ cat TOUROKU.HTML
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01
Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-type" content="text/html; charset=UTF-8" />
<meta http-equiv="Content-Style-type" content="text/css" />
<title>フォーム</title>
</head>
<body>
下のフォームにご記入ください。
<form action="./TOUROKU.CGI" method="POST" style="border:1px solid black">

<input type="text" name="FAMILY_NAME" />
<br />

<input type="text" name="GIVEN_NAME" />
<br />
年齢
<select name="AGE">
<option value="20">20 代</option>
<option value="30">30 代</option>
<option value="40">40 代</option>
</select>
<input type="submit" />
</form>
</body>
</html>

$ cat namefile
place tokyo
country japan
---------------------------------------------------------------

以下はシンプルに実行した例です。

---------------------------------------------------------------
$ run-cgi TOUROKU.CGI namefile
---------------------------------------------------------------

標準出力には出力が、エラー出力にはログが出力されます。

以下はエラー出力を捨てる例です。

---------------------------------------------------------------
$ run-cgi TOUROKU.CGI namefile 2>/dev/null
---------------------------------------------------------------

以下はエラー出力を errlog に保存する例です。

---------------------------------------------------------------
$ run-cgi --log errlog TOUROKU.CGI namefile
---------------------------------------------------------------

以下は18行目まで実行する例です。(実行後 tmp-name が作成されるので、
中身が確認できる)

---------------------------------------------------------------
$ run-cgi --log errlog --var tmp=tmp TOUROKU.CGI namefile 1-18
$ cat tmp-name
place tokyo
country japan
---------------------------------------------------------------

以下は20~23行目まで実行する例です。tmp-nameは既に存在してるので、
直前の --var で設定した tmp を変えなければ、次の処理を続けて実行でき
ます(runを使った一般的な開発手順)。
---------------------------------------------------------------
$ run-cgi --log errlog --var tmp=tmp TOUROKU.CGI namefile 20-23
Content-type: text/html

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01
Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
.......
---------------------------------------------------------------

以下は、CGIスクリプトの最後まで実行した例です。
---------------------------------------------------------------
$ run-cgi --log errlog --var tmp=tmp TOUROKU.CGI namefile 20-32
---------------------------------------------------------------

なお、run-cgiがどのように動いているか疑問に感じたら、--debug オプ
ションを使って下さい。
run-cgiは実行前に引数のシェルスクリプトを編集して(例えばオプション
に「20-23」を付けたら20~23行目以外は無効化したシェルスクリプトを/tmp
に作成します)、それを実行しています。--debug オプションを付けるとス
クリプトは実行されず、run-cgi が書き換えたそのスクリプトが表示されま
す。

$ run-cgi --log errlog --var tmp=tmp --debug TOUROKU.CGI namefile