Tukubaiオンラインコマンドマニュアル - cgi-name(1)
cgi-name(1)
【名前】
cgi-name
: CGI POSTメソッドで受け渡されるデータをネーム形式に変換
【書式】
Usage : cgi-name [-d<c>][-i<string>] <param_file> Option : [--template <html>] Version : Sun Oct 2 14:17:02 JST 2022 Edition : 1
【説明】
cgi-name
はWEBサーバのCGI POSTメソッドで受け渡されるデータをネーム形式へ変換する。<param_file>
として-
を指定すると標準入力を使用する。
【例1】
Webサーバよりplace=tokyo&country=japan
という文字列が渡される場合、キー値と値をネーム形式に変更して出力する。
$ dd bs=$CONTENT_LENGTH | cgi-name place tokyo country japan $
【例2】
改行(%0D%0A
)は文字列'\n'
に変換される。また、記号'+'
は半角空白に変換される。
$ echo 'place=%E6%9D%B1%E4%BA%AC%0D%0A%E5%A4%A7%E9%98%AA&country=ja+pan' | cgi-name place 東京\n大阪 country ja pan $
【例3】
-d
オプションを指定すると半角空白は削除あるいは指定文字に変換される。
$ echo 'place=tokyo osaka&country=japan' | cgi-name place tokyo osaka country japan $
$ echo 'place=tokyo osaka&country=japan' | cgi-name -d_ place tokyo_osaka country japan $
$ echo 'place=tokyo osaka&country=japan' | cgi-name -d place tokyoosaka country japan $
【例4】
-i
オプションを指定することで、返される文字列がヌルの場合の初期値を指定できる。
$ echo 'place=&country=japan' | cgi-name place country japan $
$ echo 'place=&country=japan' | cgi-name -isomewhere place somewhere country japan $
【例5】
--template
オプションを指定することで、指定したHTMLテンプレートより、radioboxとcheckboxの名称を取り出し、その名称でデータが出力されなければ、出力をその名称で補完する。radioboxやcheckboxは選択しないでsubmitすると値そのものが出力されない。何も選択しなかったというデータを生成するためにこのオプションを使用する。
$ cat html -----省略 <input type="radiobox" name="XXXX" value="A" /> <input type="radiobox" name="XXXX" value="B" /> <input type="radiobox" name="XXXX" value="C" /> <input type="checkbox" name="YYYY" value="a" /> <input type="checkbox" name="YYYY" value="b" /> <input type="checkbox" name="YYYY" value="c" /> -----省略 $
$ dd bs=$CONTENT_LENGTH | cgi-name -i_ --template html -----省略 XXXX _ YYYY _ -----省略 $
【例6】
radiobox checkboxがhtmlテンプレートのmojihame -l
コマンド対象部分にある場合においても、タグ名_%数字を認識して選択値がなくてもタグ名を出力する。
$ cat html -----省略 <!-- MOJIHAME --> <input type="radiobox" name="X_%1" value="%2" /> <!-- MOJIHAME --> -----省略 $
$ dd bs=$CONTENT_LENGTH | cgi-name -i_ --template html -----省略 X _ -----省略 $
【備考】
CGI POSTメソッドで受け渡されるデータには改行がない。通常のファイルとして使用するには、ファイル末に改行コードを付加しておくほうが扱いやすい。cgi-name
コマンドはファイル末の改行があってもなくても正しく値を取り出す。